diff --git a/CAIE-Code-Extension b/CAIE-Code-Extension index d03e339..5884c9b 160000 --- a/CAIE-Code-Extension +++ b/CAIE-Code-Extension @@ -1 +1 @@ -Subproject commit d03e339c6e8ade1eb6fe5cf2597a413c8cf7cd4e +Subproject commit 5884c9b48b683f8e36fe8e15fa043c38c7e97adf diff --git a/README.md b/README.md index cc18d70..57198d9 100644 --- a/README.md +++ b/README.md @@ -498,15 +498,35 @@ The following items give the `DATATYPE`, its description, and the default value "BCD" ``` * `LCASE(ThisChar : CHAR) RETURNS CHAR` +> Decrapricated since 2023 ``` $ LCASE('W') 'w' ``` * `UCASE(ThisChar : CHAR) RETURNS CHAR` +> Decrapricated since 2023 ``` $ UCASE('h') 'H' ``` +* `TO_UPPER(x : ) RETURNS ` +> may be `CHAR` or `STRING` + ``` + $ TO_UPPER("hello") + "HELLO" + + $ TO_UPPER('a') + 'A' + ``` +* `TO_LOWER(x : ) RETURNS ` +> may be `CHAR` or `STRING` + ``` + $ TO_LOWER("HELLO") + "hello" + + $ TO_LOWER('A') + 'a' + ``` * `INT(x : REAL) RETURNS INTEGER` ``` $ INT(27.5415) @@ -519,6 +539,37 @@ The following items give the `DATATYPE`, its description, and the default value ``` * `EOF(file_path : STRING) RETURNS BOOLEAN` * `POW(x: REAL, y: REAL) RETURNS REAL` +* `DAY(ThisDate : DATE) RETURNS INTEGER` + ``` + $ DAY(25/07/2023) + 25 + ``` +* `MONTH(ThisDate : DATE) RETURNS INTEGER` + ``` + $ MONTH(25/07/2023) + 7 + ``` +* `YEAR(ThisDate : DATE) RETURNS INTEGER` + ``` + $ YEAR(12/12/2005) + 2005 + ``` +* `DAYINDEX(ThisDate : DATE) RETURNS INTEGER` +> Where Sunday = 1, Monday = 2 etc + ``` + $ DAYINDEX(25/03/2024) + 2 + ``` +* `SETDATE(day : INTEGER, month : INTEGER, year : INTEGER) RETURNS DATE` + ``` + $ SETDATE(25, 03, 2024) + 25/03/2024 + ``` +* `TODAY() RETURNS DATE` + ``` + $ TODAY() + 25/03/2024 + ``` ### Built-in Functions of this Interpreter > These functions are fairly useful, but they are not included in the [CAIE standard](https://www.cambridgeinternational.org/Images/697401-2026-syllabus-legacy-notice.pdf). diff --git a/README_zh.md b/README_zh.md index 0a4f226..d735d2e 100644 --- a/README_zh.md +++ b/README_zh.md @@ -476,15 +476,35 @@ NEXT i "BCD" ``` * `LCASE(ThisChar : CHAR) RETURNS CHAR` +> 从2023年开始弃用 ``` $ LCASE('W') 'w' ``` * `UCASE(ThisChar : CHAR) RETURNS CHAR` +> 从2023年开始弃用 ``` $ UCASE('h') 'H' ``` +* `TO_UPPER(x : ) RETURNS ` +> 可以是 `CAHR` 或者 `STRING` + ``` + $ TO_UPPER("hello") + "HELLO" + + $ TO_UPPER('a') + 'A' + ``` +* `TO_LOWER(x : ) RETURNS ` +> 可以是 `CAHR` 或者 `STRING` + ``` + $ TO_LOWER("HELLO") + "hello" + + $ TO_LOWER('A') + 'a' + ``` * `INT(x : REAL) RETURNS INTEGER` ``` $ INT(27.5415) @@ -497,6 +517,38 @@ NEXT i ``` * `EOF(file_path : STRING) RETURNS BOOLEAN` * `POW(x: REAL, y: REAL) RETURNS REAL` +* `DAY(ThisDate : DATE) RETURNS INTEGER` + ``` + $ DAY(25/07/2023) + 25 + ``` +* `MONTH(ThisDate : DATE) RETURNS INTEGER` + ``` + $ MONTH(25/07/2023) + 7 + ``` +* `YEAR(ThisDate : DATE) RETURNS INTEGER` + ``` + $ YEAR(12/12/2005) + 2005 + ``` +* `DAYINDEX(ThisDate : DATE) RETURNS INTEGER` +> 周日返回1,周一返回2,以此类推 + ``` + $ DAYINDEX(25/03/2024) + 2 + ``` +* `SETDATE(day : INTEGER, month : INTEGER, year : INTEGER) RETURNS DATE` + ``` + $ SETDATE(25, 03, 2024) + 25/03/2024 + ``` +* `TODAY() RETURNS DATE` + ``` + $ TODAY() + 25/03/2024 + ``` + **(以下方法均不属于CAIE提供的标准方法)** * `EXIT(code : INTEGER)` 以code为退出码,退出程序 (若不填写code,则默认为0) diff --git a/parser.out b/parser.out index 9325263..039d17e 100644 --- a/parser.out +++ b/parser.out @@ -20,257 +20,258 @@ Rule 4 statement -> DECLARE ID COLON ID Rule 5 statement -> PUBLIC ID COLON ID Rule 6 statement -> PRIVATE ID COLON ID Rule 7 statement -> CONSTANT ID EQUAL expression -Rule 8 statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID -Rule 9 statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID -Rule 10 statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID -Rule 11 dimensions -> dimensions COMMA dimension -Rule 12 dimensions -> dimension -Rule 13 dimension -> expression COLON expression -Rule 14 statement -> expression ASSIGN expression -Rule 15 indexes -> indexes COMMA expression -Rule 16 indexes -> expression -Rule 17 expression -> LEFT_SQUARE array_items RIGHT_SQUARE -Rule 18 expression -> LEFT_SQUARE RIGHT_SQUARE -Rule 19 array_items -> array_items COMMA expression -Rule 20 array_items -> expression -Rule 21 statement -> INPUT expression -Rule 22 statement -> OUTPUT output_expression -Rule 23 statement -> _OUTPUT output_expression -Rule 24 output_expression -> output_expression COMMA expression -Rule 25 output_expression -> expression -Rule 26 statement -> IF expression THEN statements ELSE statements ENDIF -Rule 27 statement -> IF expression THEN statements ENDIF -Rule 28 statement -> CASE OF expression cases ENDCASE -Rule 29 cases -> cases case -Rule 30 cases -> case -Rule 31 case -> case_expression COLON statements SEMICOLON -Rule 32 case -> otherwise_statement SEMICOLON -Rule 33 case_expression -> expression TO expression -Rule 34 case_expression -> expression -Rule 35 otherwise_statement -> OTHERWISE COLON statements -Rule 36 statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID -Rule 37 statement -> FOR ID ASSIGN expression TO expression statements NEXT ID -Rule 38 statement -> REPEAT statements UNTIL expression -Rule 39 statement -> WHILE expression DO statements ENDWHILE -Rule 40 statement -> WHILE expression statements ENDWHILE -Rule 41 statement -> expression -Rule 42 expression -> ID -Rule 43 expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE -Rule 44 expression -> expression OR expression -Rule 45 expression -> expression AND expression -Rule 46 expression -> NOT expression -Rule 47 expression -> expression EQUAL expression -Rule 48 expression -> expression NOT_EQUAL expression -Rule 49 expression -> expression LESS expression -Rule 50 expression -> expression GREATER expression -Rule 51 expression -> expression LESS_EQUAL expression -Rule 52 expression -> expression GREATER_EQUAL expression -Rule 53 expression -> expression MOD expression -Rule 54 expression -> expression DIV expression -Rule 55 expression -> expression MUL expression -Rule 56 expression -> expression N_DIV expression -Rule 57 expression -> MINUS expression -Rule 58 expression -> PLUS expression -Rule 59 expression -> expression PLUS expression -Rule 60 expression -> expression MINUS expression -Rule 61 expression -> expression CONNECT expression -Rule 62 expression -> LEFT_PAREN expression RIGHT_PAREN -Rule 63 expression -> DATE -Rule 64 expression -> BOOLEAN -Rule 65 expression -> CHAR -Rule 66 expression -> STRING -Rule 67 expression -> REAL -Rule 68 expression -> INTEGER -Rule 69 declare_parameters -> declare_parameters COMMA declare_parameter -Rule 70 declare_parameters -> declare_parameter -Rule 71 declare_parameter -> ID COLON ID -Rule 72 declare_parameter -> ID COLON ARRAY -Rule 73 declare_parameter -> BYREF ID COLON ID -Rule 74 declare_parameter -> BYREF ID COLON ARRAY -Rule 75 declare_parameter -> BYVAL ID COLON ID -Rule 76 declare_parameter -> BYVAL ID COLON ARRAY -Rule 77 declare_parameter -> ID COLON ARRAY OF ID -Rule 78 declare_parameter -> BYREF ID COLON ARRAY OF ID -Rule 79 declare_parameter -> BYVAL ID COLON ARRAY OF ID -Rule 80 parameters -> parameters COMMA expression -Rule 81 parameters -> expression -Rule 82 statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE -Rule 83 statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE -Rule 84 statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE -Rule 85 statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE -Rule 86 statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE -Rule 87 statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE -Rule 88 statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE -Rule 89 statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE -Rule 90 statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE -Rule 91 statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE -Rule 92 statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE -Rule 93 statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE -Rule 94 statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN -Rule 95 statement -> CALL ID LEFT_PAREN RIGHT_PAREN -Rule 96 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION -Rule 97 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION -Rule 98 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION -Rule 99 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION -Rule 100 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION -Rule 101 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION -Rule 102 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION -Rule 103 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION -Rule 104 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION -Rule 105 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION -Rule 106 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION -Rule 107 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION -Rule 108 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION -Rule 109 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION -Rule 110 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION -Rule 111 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION -Rule 112 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION -Rule 113 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION -Rule 114 expression -> ID LEFT_PAREN parameters RIGHT_PAREN -Rule 115 expression -> MOD LEFT_PAREN parameters RIGHT_PAREN -Rule 116 expression -> DIV LEFT_PAREN parameters RIGHT_PAREN -Rule 117 expression -> ID LEFT_PAREN RIGHT_PAREN -Rule 118 statement -> RETURN expression -Rule 119 statement -> OPENFILE expression FOR READ -Rule 120 statement -> OPENFILE expression FOR WRITE -Rule 121 statement -> OPENFILE expression FOR APPEND -Rule 122 statement -> OPENFILE expression FOR RANDOM -Rule 123 statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE -Rule 124 statement -> READFILE expression COMMA ID -Rule 125 statement -> WRITEFILE expression COMMA expression -Rule 126 statement -> CLOSEFILE expression -Rule 127 statement -> SEEK expression COMMA expression -Rule 128 statement -> TYPE ID statements ENDTYPE -Rule 129 expression -> expression DOT expression -Rule 130 statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN -Rule 131 enumerate_items -> enumerate_items COMMA ID -Rule 132 enumerate_items -> ID -Rule 133 expression -> POINTER expression -Rule 134 expression -> expression POINTER -Rule 135 statement -> TYPE ID EQUAL POINTER ID -Rule 136 statement -> PASS -Rule 137 statement -> IMPORT expression -Rule 138 statement -> CLASS ID statements ENDCLASS -Rule 139 statement -> CLASS ID INHERITS ID statements ENDCLASS -Rule 140 expression -> NEW ID -Rule 141 expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN -Rule 142 statement -> TYPE ID EQUAL SET OF ID +Rule 8 statement -> CONSTANT ID ASSIGN expression +Rule 9 statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID +Rule 10 statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID +Rule 11 statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID +Rule 12 dimensions -> dimensions COMMA dimension +Rule 13 dimensions -> dimension +Rule 14 dimension -> expression COLON expression +Rule 15 statement -> expression ASSIGN expression +Rule 16 indexes -> indexes COMMA expression +Rule 17 indexes -> expression +Rule 18 expression -> LEFT_SQUARE array_items RIGHT_SQUARE +Rule 19 expression -> LEFT_SQUARE RIGHT_SQUARE +Rule 20 array_items -> array_items COMMA expression +Rule 21 array_items -> expression +Rule 22 statement -> INPUT expression +Rule 23 statement -> OUTPUT output_expression +Rule 24 statement -> _OUTPUT output_expression +Rule 25 output_expression -> output_expression COMMA expression +Rule 26 output_expression -> expression +Rule 27 statement -> IF expression THEN statements ELSE statements ENDIF +Rule 28 statement -> IF expression THEN statements ENDIF +Rule 29 statement -> CASE OF expression cases ENDCASE +Rule 30 cases -> cases case +Rule 31 cases -> case +Rule 32 case -> case_expression COLON statements SEMICOLON +Rule 33 case -> otherwise_statement SEMICOLON +Rule 34 case_expression -> expression TO expression +Rule 35 case_expression -> expression +Rule 36 otherwise_statement -> OTHERWISE COLON statements +Rule 37 statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID +Rule 38 statement -> FOR ID ASSIGN expression TO expression statements NEXT ID +Rule 39 statement -> REPEAT statements UNTIL expression +Rule 40 statement -> WHILE expression DO statements ENDWHILE +Rule 41 statement -> WHILE expression statements ENDWHILE +Rule 42 statement -> expression +Rule 43 expression -> ID +Rule 44 expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE +Rule 45 expression -> expression OR expression +Rule 46 expression -> expression AND expression +Rule 47 expression -> NOT expression +Rule 48 expression -> expression EQUAL expression +Rule 49 expression -> expression NOT_EQUAL expression +Rule 50 expression -> expression LESS expression +Rule 51 expression -> expression GREATER expression +Rule 52 expression -> expression LESS_EQUAL expression +Rule 53 expression -> expression GREATER_EQUAL expression +Rule 54 expression -> expression MOD expression +Rule 55 expression -> expression DIV expression +Rule 56 expression -> expression MUL expression +Rule 57 expression -> expression N_DIV expression +Rule 58 expression -> MINUS expression +Rule 59 expression -> PLUS expression +Rule 60 expression -> expression PLUS expression +Rule 61 expression -> expression MINUS expression +Rule 62 expression -> expression CONNECT expression +Rule 63 expression -> LEFT_PAREN expression RIGHT_PAREN +Rule 64 expression -> DATE +Rule 65 expression -> BOOLEAN +Rule 66 expression -> CHAR +Rule 67 expression -> STRING +Rule 68 expression -> REAL +Rule 69 expression -> INTEGER +Rule 70 declare_parameters -> declare_parameters COMMA declare_parameter +Rule 71 declare_parameters -> declare_parameter +Rule 72 declare_parameter -> ID COLON ID +Rule 73 declare_parameter -> ID COLON ARRAY +Rule 74 declare_parameter -> BYREF ID COLON ID +Rule 75 declare_parameter -> BYREF ID COLON ARRAY +Rule 76 declare_parameter -> BYVAL ID COLON ID +Rule 77 declare_parameter -> BYVAL ID COLON ARRAY +Rule 78 declare_parameter -> ID COLON ARRAY OF ID +Rule 79 declare_parameter -> BYREF ID COLON ARRAY OF ID +Rule 80 declare_parameter -> BYVAL ID COLON ARRAY OF ID +Rule 81 parameters -> parameters COMMA expression +Rule 82 parameters -> expression +Rule 83 statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 84 statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 85 statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 86 statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 87 statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 88 statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 89 statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 90 statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 91 statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 92 statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 93 statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 94 statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 95 statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN +Rule 96 statement -> CALL ID LEFT_PAREN RIGHT_PAREN +Rule 97 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 98 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 99 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 100 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 101 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 102 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 103 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 104 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 105 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 106 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 107 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 108 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 109 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 110 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 111 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 112 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 113 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 114 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 115 expression -> ID LEFT_PAREN parameters RIGHT_PAREN +Rule 116 expression -> MOD LEFT_PAREN parameters RIGHT_PAREN +Rule 117 expression -> DIV LEFT_PAREN parameters RIGHT_PAREN +Rule 118 expression -> ID LEFT_PAREN RIGHT_PAREN +Rule 119 statement -> RETURN expression +Rule 120 statement -> OPENFILE expression FOR READ +Rule 121 statement -> OPENFILE expression FOR WRITE +Rule 122 statement -> OPENFILE expression FOR APPEND +Rule 123 statement -> OPENFILE expression FOR RANDOM +Rule 124 statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE +Rule 125 statement -> READFILE expression COMMA ID +Rule 126 statement -> WRITEFILE expression COMMA expression +Rule 127 statement -> CLOSEFILE expression +Rule 128 statement -> SEEK expression COMMA expression +Rule 129 statement -> TYPE ID statements ENDTYPE +Rule 130 expression -> expression DOT expression +Rule 131 statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN +Rule 132 enumerate_items -> enumerate_items COMMA ID +Rule 133 enumerate_items -> ID +Rule 134 expression -> POINTER expression +Rule 135 expression -> expression POINTER +Rule 136 statement -> TYPE ID EQUAL POINTER ID +Rule 137 statement -> PASS +Rule 138 statement -> IMPORT expression +Rule 139 statement -> CLASS ID statements ENDCLASS +Rule 140 statement -> CLASS ID INHERITS ID statements ENDCLASS +Rule 141 expression -> NEW ID +Rule 142 expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN +Rule 143 statement -> TYPE ID EQUAL SET OF ID Terminals, with rules where they appear -AND : 45 -APPEND : 121 -ARRAY : 8 9 10 72 74 76 77 78 79 97 99 101 103 105 107 108 109 110 111 112 113 -ASSIGN : 14 36 37 -BOOLEAN : 64 -BYREF : 73 74 78 -BYVAL : 75 76 79 -CALL : 94 95 -CASE : 28 -CHAR : 65 -CLASS : 138 139 -CLOSEFILE : 126 -COLON : 4 5 6 8 9 10 13 31 35 71 72 73 74 75 76 77 78 79 -COMMA : 11 15 19 24 69 80 123 124 125 127 131 -CONNECT : 61 -CONSTANT : 7 -DATE : 63 -DECLARE : 4 8 +AND : 46 +APPEND : 122 +ARRAY : 9 10 11 73 75 77 78 79 80 98 100 102 104 106 108 109 110 111 112 113 114 +ASSIGN : 8 15 37 38 +BOOLEAN : 65 +BYREF : 74 75 79 +BYVAL : 76 77 80 +CALL : 95 96 +CASE : 29 +CHAR : 66 +CLASS : 139 140 +CLOSEFILE : 127 +COLON : 4 5 6 9 10 11 14 32 36 72 73 74 75 76 77 78 79 80 +COMMA : 12 16 20 25 70 81 124 125 126 128 132 +CONNECT : 62 +CONSTANT : 7 8 +DATE : 64 +DECLARE : 4 9 DEFINE : DELETE : 3 -DIV : 54 116 -DO : 39 -DOT : 129 -ELSE : 26 -ENDCASE : 28 -ENDCLASS : 138 139 -ENDFUNCTION : 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 -ENDIF : 26 27 -ENDPROCEDURE : 82 83 84 85 86 87 88 89 90 91 92 93 -ENDTYPE : 128 -ENDWHILE : 39 40 -EQUAL : 7 47 130 135 142 -FOR : 36 37 119 120 121 122 -FUNCTION : 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 +DIV : 55 117 +DO : 40 +DOT : 130 +ELSE : 27 +ENDCASE : 29 +ENDCLASS : 139 140 +ENDFUNCTION : 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 +ENDIF : 27 28 +ENDPROCEDURE : 83 84 85 86 87 88 89 90 91 92 93 94 +ENDTYPE : 129 +ENDWHILE : 40 41 +EQUAL : 7 48 131 136 143 +FOR : 37 38 120 121 122 123 +FUNCTION : 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 GETRECORD : -GREATER : 50 -GREATER_EQUAL : 52 -ID : 3 4 4 5 5 6 6 7 8 8 9 9 10 10 36 36 37 37 42 43 71 71 72 73 73 74 75 75 76 77 77 78 78 79 79 82 84 86 88 90 92 94 95 96 96 97 98 98 99 100 100 101 102 102 103 104 104 105 106 106 107 108 108 109 109 110 110 111 111 112 112 113 113 114 117 123 124 128 130 131 132 135 135 138 139 139 140 141 142 142 -IF : 26 27 -IMPORT : 137 -INHERITS : 139 -INPUT : 21 -INTEGER : 68 +GREATER : 51 +GREATER_EQUAL : 53 +ID : 3 4 4 5 5 6 6 7 8 9 9 10 10 11 11 37 37 38 38 43 44 72 72 73 74 74 75 76 76 77 78 78 79 79 80 80 83 85 87 89 91 93 95 96 97 97 98 99 99 100 101 101 102 103 103 104 105 105 106 107 107 108 109 109 110 110 111 111 112 112 113 113 114 114 115 118 124 125 129 131 132 133 136 136 139 140 140 141 142 143 143 +IF : 27 28 +IMPORT : 138 +INHERITS : 140 +INPUT : 22 +INTEGER : 69 LEFT_BRACE : -LEFT_PAREN : 62 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 130 141 -LEFT_SQUARE : 8 9 10 17 18 43 123 -LESS : 49 -LESS_EQUAL : 51 -MINUS : 57 60 -MOD : 53 115 -MUL : 55 -NEW : 83 85 87 89 91 93 140 141 +LEFT_PAREN : 63 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 131 142 +LEFT_SQUARE : 9 10 11 18 19 44 124 +LESS : 50 +LESS_EQUAL : 52 +MINUS : 58 61 +MOD : 54 116 +MUL : 56 +NEW : 84 86 88 90 92 94 141 142 NEWLINE : -NEXT : 36 37 -NOT : 46 -NOT_EQUAL : 48 -N_DIV : 56 -OF : 8 9 10 28 77 78 79 108 109 110 111 112 113 142 -OPENFILE : 119 120 121 122 -OR : 44 -OTHERWISE : 35 -OUTPUT : 22 -PASS : 136 -PLUS : 58 59 -POINTER : 133 134 135 -PRIVATE : 6 10 90 91 92 93 104 105 106 107 112 113 -PROCEDURE : 82 83 84 85 86 87 88 89 90 91 92 93 -PUBLIC : 5 9 86 87 88 89 100 101 102 103 110 111 +NEXT : 37 38 +NOT : 47 +NOT_EQUAL : 49 +N_DIV : 57 +OF : 9 10 11 29 78 79 80 109 110 111 112 113 114 143 +OPENFILE : 120 121 122 123 +OR : 45 +OTHERWISE : 36 +OUTPUT : 23 +PASS : 137 +PLUS : 59 60 +POINTER : 134 135 136 +PRIVATE : 6 11 91 92 93 94 105 106 107 108 113 114 +PROCEDURE : 83 84 85 86 87 88 89 90 91 92 93 94 +PUBLIC : 5 10 87 88 89 90 101 102 103 104 111 112 PUTRECORD : -RANDOM : 122 -READ : 119 -READFILE : 123 124 -REAL : 67 -REPEAT : 38 -RETURN : 118 -RETURNS : 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 +RANDOM : 123 +READ : 120 +READFILE : 124 125 +REAL : 68 +REPEAT : 39 +RETURN : 119 +RETURNS : 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 RIGHT_BRACE : -RIGHT_PAREN : 62 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 130 141 -RIGHT_SQUARE : 8 9 10 17 18 43 123 -SEEK : 127 -SEMICOLON : 31 32 -SET : 142 -STEP : 36 -STRING : 66 +RIGHT_PAREN : 63 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 131 142 +RIGHT_SQUARE : 9 10 11 18 19 44 124 +SEEK : 128 +SEMICOLON : 32 33 +SET : 143 +STEP : 37 +STRING : 67 SUPER : -THEN : 26 27 -TO : 33 36 37 -TYPE : 128 130 135 142 -UNTIL : 38 -WHILE : 39 40 -WRITE : 120 -WRITEFILE : 125 -_OUTPUT : 23 +THEN : 27 28 +TO : 34 37 38 +TYPE : 129 131 136 143 +UNTIL : 39 +WHILE : 40 41 +WRITE : 121 +WRITEFILE : 126 +_OUTPUT : 24 error : Nonterminals, with rules where they appear -array_items : 17 19 -case : 29 30 -case_expression : 31 -cases : 28 29 -declare_parameter : 69 70 -declare_parameters : 69 82 83 86 87 90 91 96 97 100 101 104 105 108 110 112 -dimension : 11 12 -dimensions : 8 9 10 11 -enumerate_items : 130 131 -expression : 7 13 13 14 14 15 16 19 20 21 24 25 26 27 28 33 33 34 36 36 36 37 37 38 39 40 41 44 44 45 45 46 47 47 48 48 49 49 50 50 51 51 52 52 53 53 54 54 55 55 56 56 57 58 59 59 60 60 61 61 62 80 81 118 119 120 121 122 123 124 125 125 126 127 127 129 129 133 134 137 -indexes : 15 43 123 -otherwise_statement : 32 -output_expression : 22 23 24 -parameters : 80 94 114 115 116 141 +array_items : 18 20 +case : 30 31 +case_expression : 32 +cases : 29 30 +declare_parameter : 70 71 +declare_parameters : 70 83 84 87 88 91 92 97 98 101 102 105 106 109 111 113 +dimension : 12 13 +dimensions : 9 10 11 12 +enumerate_items : 131 132 +expression : 7 8 14 14 15 15 16 17 20 21 22 25 26 27 28 29 34 34 35 37 37 37 38 38 39 40 41 42 45 45 46 46 47 48 48 49 49 50 50 51 51 52 52 53 53 54 54 55 55 56 56 57 57 58 59 60 60 61 61 62 62 63 81 82 119 120 121 122 123 124 125 126 126 127 128 128 130 130 134 135 138 +indexes : 16 44 124 +otherwise_statement : 33 +output_expression : 23 24 25 +parameters : 81 95 115 116 117 142 statement : 1 2 -statements : 1 26 26 27 31 35 36 37 38 39 40 82 83 84 85 86 87 88 89 90 91 92 93 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 128 138 139 0 +statements : 1 27 27 28 32 36 37 38 39 40 41 83 84 85 86 87 88 89 90 91 92 93 94 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 129 139 140 0 Parsing method: LALR @@ -284,110 +285,111 @@ state 0 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -445,110 +447,111 @@ state 1 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -664,97 +667,97 @@ state 3 state 4 - (42) expression -> ID . - (43) expression -> ID . LEFT_SQUARE indexes RIGHT_SQUARE - (114) expression -> ID . LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> ID . LEFT_PAREN RIGHT_PAREN + (43) expression -> ID . + (44) expression -> ID . LEFT_SQUARE indexes RIGHT_SQUARE + (115) expression -> ID . LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> ID . LEFT_PAREN RIGHT_PAREN ! shift/reduce conflict for LEFT_SQUARE resolved as shift ! shift/reduce conflict for LEFT_PAREN resolved as shift - ASSIGN reduce using rule 42 (expression -> ID .) - OR reduce using rule 42 (expression -> ID .) - AND reduce using rule 42 (expression -> ID .) - EQUAL reduce using rule 42 (expression -> ID .) - NOT_EQUAL reduce using rule 42 (expression -> ID .) - LESS reduce using rule 42 (expression -> ID .) - GREATER reduce using rule 42 (expression -> ID .) - LESS_EQUAL reduce using rule 42 (expression -> ID .) - GREATER_EQUAL reduce using rule 42 (expression -> ID .) - MOD reduce using rule 42 (expression -> ID .) - DIV reduce using rule 42 (expression -> ID .) - MUL reduce using rule 42 (expression -> ID .) - N_DIV reduce using rule 42 (expression -> ID .) - PLUS reduce using rule 42 (expression -> ID .) - MINUS reduce using rule 42 (expression -> ID .) - CONNECT reduce using rule 42 (expression -> ID .) - DOT reduce using rule 42 (expression -> ID .) - POINTER reduce using rule 42 (expression -> ID .) - DELETE reduce using rule 42 (expression -> ID .) - DECLARE reduce using rule 42 (expression -> ID .) - PUBLIC reduce using rule 42 (expression -> ID .) - PRIVATE reduce using rule 42 (expression -> ID .) - CONSTANT reduce using rule 42 (expression -> ID .) - INPUT reduce using rule 42 (expression -> ID .) - OUTPUT reduce using rule 42 (expression -> ID .) - _OUTPUT reduce using rule 42 (expression -> ID .) - IF reduce using rule 42 (expression -> ID .) - CASE reduce using rule 42 (expression -> ID .) - FOR reduce using rule 42 (expression -> ID .) - REPEAT reduce using rule 42 (expression -> ID .) - WHILE reduce using rule 42 (expression -> ID .) - PROCEDURE reduce using rule 42 (expression -> ID .) - CALL reduce using rule 42 (expression -> ID .) - FUNCTION reduce using rule 42 (expression -> ID .) - RETURN reduce using rule 42 (expression -> ID .) - OPENFILE reduce using rule 42 (expression -> ID .) - READFILE reduce using rule 42 (expression -> ID .) - WRITEFILE reduce using rule 42 (expression -> ID .) - CLOSEFILE reduce using rule 42 (expression -> ID .) - SEEK reduce using rule 42 (expression -> ID .) - TYPE reduce using rule 42 (expression -> ID .) - PASS reduce using rule 42 (expression -> ID .) - IMPORT reduce using rule 42 (expression -> ID .) - CLASS reduce using rule 42 (expression -> ID .) - ID reduce using rule 42 (expression -> ID .) - NOT reduce using rule 42 (expression -> ID .) - DATE reduce using rule 42 (expression -> ID .) - BOOLEAN reduce using rule 42 (expression -> ID .) - CHAR reduce using rule 42 (expression -> ID .) - STRING reduce using rule 42 (expression -> ID .) - REAL reduce using rule 42 (expression -> ID .) - INTEGER reduce using rule 42 (expression -> ID .) - NEW reduce using rule 42 (expression -> ID .) - $end reduce using rule 42 (expression -> ID .) - RIGHT_SQUARE reduce using rule 42 (expression -> ID .) - COMMA reduce using rule 42 (expression -> ID .) - UNTIL reduce using rule 42 (expression -> ID .) - ENDWHILE reduce using rule 42 (expression -> ID .) - ENDTYPE reduce using rule 42 (expression -> ID .) - ENDCLASS reduce using rule 42 (expression -> ID .) - ELSE reduce using rule 42 (expression -> ID .) - ENDIF reduce using rule 42 (expression -> ID .) - ENDPROCEDURE reduce using rule 42 (expression -> ID .) - SEMICOLON reduce using rule 42 (expression -> ID .) - NEXT reduce using rule 42 (expression -> ID .) - ENDFUNCTION reduce using rule 42 (expression -> ID .) - THEN reduce using rule 42 (expression -> ID .) - DO reduce using rule 42 (expression -> ID .) - RIGHT_PAREN reduce using rule 42 (expression -> ID .) - OTHERWISE reduce using rule 42 (expression -> ID .) - TO reduce using rule 42 (expression -> ID .) - COLON reduce using rule 42 (expression -> ID .) - STEP reduce using rule 42 (expression -> ID .) + ASSIGN reduce using rule 43 (expression -> ID .) + OR reduce using rule 43 (expression -> ID .) + AND reduce using rule 43 (expression -> ID .) + EQUAL reduce using rule 43 (expression -> ID .) + NOT_EQUAL reduce using rule 43 (expression -> ID .) + LESS reduce using rule 43 (expression -> ID .) + GREATER reduce using rule 43 (expression -> ID .) + LESS_EQUAL reduce using rule 43 (expression -> ID .) + GREATER_EQUAL reduce using rule 43 (expression -> ID .) + MOD reduce using rule 43 (expression -> ID .) + DIV reduce using rule 43 (expression -> ID .) + MUL reduce using rule 43 (expression -> ID .) + N_DIV reduce using rule 43 (expression -> ID .) + PLUS reduce using rule 43 (expression -> ID .) + MINUS reduce using rule 43 (expression -> ID .) + CONNECT reduce using rule 43 (expression -> ID .) + DOT reduce using rule 43 (expression -> ID .) + POINTER reduce using rule 43 (expression -> ID .) + DELETE reduce using rule 43 (expression -> ID .) + DECLARE reduce using rule 43 (expression -> ID .) + PUBLIC reduce using rule 43 (expression -> ID .) + PRIVATE reduce using rule 43 (expression -> ID .) + CONSTANT reduce using rule 43 (expression -> ID .) + INPUT reduce using rule 43 (expression -> ID .) + OUTPUT reduce using rule 43 (expression -> ID .) + _OUTPUT reduce using rule 43 (expression -> ID .) + IF reduce using rule 43 (expression -> ID .) + CASE reduce using rule 43 (expression -> ID .) + FOR reduce using rule 43 (expression -> ID .) + REPEAT reduce using rule 43 (expression -> ID .) + WHILE reduce using rule 43 (expression -> ID .) + PROCEDURE reduce using rule 43 (expression -> ID .) + CALL reduce using rule 43 (expression -> ID .) + FUNCTION reduce using rule 43 (expression -> ID .) + RETURN reduce using rule 43 (expression -> ID .) + OPENFILE reduce using rule 43 (expression -> ID .) + READFILE reduce using rule 43 (expression -> ID .) + WRITEFILE reduce using rule 43 (expression -> ID .) + CLOSEFILE reduce using rule 43 (expression -> ID .) + SEEK reduce using rule 43 (expression -> ID .) + TYPE reduce using rule 43 (expression -> ID .) + PASS reduce using rule 43 (expression -> ID .) + IMPORT reduce using rule 43 (expression -> ID .) + CLASS reduce using rule 43 (expression -> ID .) + ID reduce using rule 43 (expression -> ID .) + NOT reduce using rule 43 (expression -> ID .) + DATE reduce using rule 43 (expression -> ID .) + BOOLEAN reduce using rule 43 (expression -> ID .) + CHAR reduce using rule 43 (expression -> ID .) + STRING reduce using rule 43 (expression -> ID .) + REAL reduce using rule 43 (expression -> ID .) + INTEGER reduce using rule 43 (expression -> ID .) + NEW reduce using rule 43 (expression -> ID .) + $end reduce using rule 43 (expression -> ID .) + RIGHT_SQUARE reduce using rule 43 (expression -> ID .) + COMMA reduce using rule 43 (expression -> ID .) + UNTIL reduce using rule 43 (expression -> ID .) + ENDWHILE reduce using rule 43 (expression -> ID .) + ENDTYPE reduce using rule 43 (expression -> ID .) + ENDCLASS reduce using rule 43 (expression -> ID .) + ELSE reduce using rule 43 (expression -> ID .) + ENDIF reduce using rule 43 (expression -> ID .) + ENDPROCEDURE reduce using rule 43 (expression -> ID .) + SEMICOLON reduce using rule 43 (expression -> ID .) + NEXT reduce using rule 43 (expression -> ID .) + ENDFUNCTION reduce using rule 43 (expression -> ID .) + THEN reduce using rule 43 (expression -> ID .) + DO reduce using rule 43 (expression -> ID .) + RIGHT_PAREN reduce using rule 43 (expression -> ID .) + OTHERWISE reduce using rule 43 (expression -> ID .) + TO reduce using rule 43 (expression -> ID .) + COLON reduce using rule 43 (expression -> ID .) + STEP reduce using rule 43 (expression -> ID .) LEFT_SQUARE shift and go to state 48 LEFT_PAREN shift and go to state 49 - ! LEFT_SQUARE [ reduce using rule 42 (expression -> ID .) ] - ! LEFT_PAREN [ reduce using rule 42 (expression -> ID .) ] + ! LEFT_SQUARE [ reduce using rule 43 (expression -> ID .) ] + ! LEFT_PAREN [ reduce using rule 43 (expression -> ID .) ] state 5 (4) statement -> DECLARE . ID COLON ID - (8) statement -> DECLARE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) statement -> DECLARE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID ID shift and go to state 50 @@ -762,17 +765,17 @@ state 5 state 6 (5) statement -> PUBLIC . ID COLON ID - (9) statement -> PUBLIC . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (86) statement -> PUBLIC . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> PUBLIC . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> PUBLIC . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> PUBLIC . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (100) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (10) statement -> PUBLIC . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (87) statement -> PUBLIC . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> PUBLIC . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> PUBLIC . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PUBLIC . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (101) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION ID shift and go to state 51 PROCEDURE shift and go to state 52 @@ -782,17 +785,17 @@ state 6 state 7 (6) statement -> PRIVATE . ID COLON ID - (10) statement -> PRIVATE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (90) statement -> PRIVATE . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> PRIVATE . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> PRIVATE . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> PRIVATE . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (104) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (11) statement -> PRIVATE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (91) statement -> PRIVATE . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> PRIVATE . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> PRIVATE . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PRIVATE . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (105) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION ID shift and go to state 54 PROCEDURE shift and go to state 55 @@ -802,31 +805,32 @@ state 7 state 8 (7) statement -> CONSTANT . ID EQUAL expression + (8) statement -> CONSTANT . ID ASSIGN expression ID shift and go to state 57 state 9 - (14) statement -> expression . ASSIGN expression - (41) statement -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (15) statement -> expression . ASSIGN expression + (42) statement -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift @@ -834,54 +838,54 @@ state 9 ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift ASSIGN shift and go to state 58 - DELETE reduce using rule 41 (statement -> expression .) - DECLARE reduce using rule 41 (statement -> expression .) - PUBLIC reduce using rule 41 (statement -> expression .) - PRIVATE reduce using rule 41 (statement -> expression .) - CONSTANT reduce using rule 41 (statement -> expression .) - INPUT reduce using rule 41 (statement -> expression .) - OUTPUT reduce using rule 41 (statement -> expression .) - _OUTPUT reduce using rule 41 (statement -> expression .) - IF reduce using rule 41 (statement -> expression .) - CASE reduce using rule 41 (statement -> expression .) - FOR reduce using rule 41 (statement -> expression .) - REPEAT reduce using rule 41 (statement -> expression .) - WHILE reduce using rule 41 (statement -> expression .) - PROCEDURE reduce using rule 41 (statement -> expression .) - CALL reduce using rule 41 (statement -> expression .) - FUNCTION reduce using rule 41 (statement -> expression .) - RETURN reduce using rule 41 (statement -> expression .) - OPENFILE reduce using rule 41 (statement -> expression .) - READFILE reduce using rule 41 (statement -> expression .) - WRITEFILE reduce using rule 41 (statement -> expression .) - CLOSEFILE reduce using rule 41 (statement -> expression .) - SEEK reduce using rule 41 (statement -> expression .) - TYPE reduce using rule 41 (statement -> expression .) - PASS reduce using rule 41 (statement -> expression .) - IMPORT reduce using rule 41 (statement -> expression .) - CLASS reduce using rule 41 (statement -> expression .) - LEFT_SQUARE reduce using rule 41 (statement -> expression .) - ID reduce using rule 41 (statement -> expression .) - NOT reduce using rule 41 (statement -> expression .) - LEFT_PAREN reduce using rule 41 (statement -> expression .) - DATE reduce using rule 41 (statement -> expression .) - BOOLEAN reduce using rule 41 (statement -> expression .) - CHAR reduce using rule 41 (statement -> expression .) - STRING reduce using rule 41 (statement -> expression .) - REAL reduce using rule 41 (statement -> expression .) - INTEGER reduce using rule 41 (statement -> expression .) - NEW reduce using rule 41 (statement -> expression .) - $end reduce using rule 41 (statement -> expression .) - UNTIL reduce using rule 41 (statement -> expression .) - ENDWHILE reduce using rule 41 (statement -> expression .) - ENDTYPE reduce using rule 41 (statement -> expression .) - ENDCLASS reduce using rule 41 (statement -> expression .) - ELSE reduce using rule 41 (statement -> expression .) - ENDIF reduce using rule 41 (statement -> expression .) - ENDPROCEDURE reduce using rule 41 (statement -> expression .) - SEMICOLON reduce using rule 41 (statement -> expression .) - NEXT reduce using rule 41 (statement -> expression .) - ENDFUNCTION reduce using rule 41 (statement -> expression .) + DELETE reduce using rule 42 (statement -> expression .) + DECLARE reduce using rule 42 (statement -> expression .) + PUBLIC reduce using rule 42 (statement -> expression .) + PRIVATE reduce using rule 42 (statement -> expression .) + CONSTANT reduce using rule 42 (statement -> expression .) + INPUT reduce using rule 42 (statement -> expression .) + OUTPUT reduce using rule 42 (statement -> expression .) + _OUTPUT reduce using rule 42 (statement -> expression .) + IF reduce using rule 42 (statement -> expression .) + CASE reduce using rule 42 (statement -> expression .) + FOR reduce using rule 42 (statement -> expression .) + REPEAT reduce using rule 42 (statement -> expression .) + WHILE reduce using rule 42 (statement -> expression .) + PROCEDURE reduce using rule 42 (statement -> expression .) + CALL reduce using rule 42 (statement -> expression .) + FUNCTION reduce using rule 42 (statement -> expression .) + RETURN reduce using rule 42 (statement -> expression .) + OPENFILE reduce using rule 42 (statement -> expression .) + READFILE reduce using rule 42 (statement -> expression .) + WRITEFILE reduce using rule 42 (statement -> expression .) + CLOSEFILE reduce using rule 42 (statement -> expression .) + SEEK reduce using rule 42 (statement -> expression .) + TYPE reduce using rule 42 (statement -> expression .) + PASS reduce using rule 42 (statement -> expression .) + IMPORT reduce using rule 42 (statement -> expression .) + CLASS reduce using rule 42 (statement -> expression .) + LEFT_SQUARE reduce using rule 42 (statement -> expression .) + ID reduce using rule 42 (statement -> expression .) + NOT reduce using rule 42 (statement -> expression .) + LEFT_PAREN reduce using rule 42 (statement -> expression .) + DATE reduce using rule 42 (statement -> expression .) + BOOLEAN reduce using rule 42 (statement -> expression .) + CHAR reduce using rule 42 (statement -> expression .) + STRING reduce using rule 42 (statement -> expression .) + REAL reduce using rule 42 (statement -> expression .) + INTEGER reduce using rule 42 (statement -> expression .) + NEW reduce using rule 42 (statement -> expression .) + $end reduce using rule 42 (statement -> expression .) + UNTIL reduce using rule 42 (statement -> expression .) + ENDWHILE reduce using rule 42 (statement -> expression .) + ENDTYPE reduce using rule 42 (statement -> expression .) + ENDCLASS reduce using rule 42 (statement -> expression .) + ELSE reduce using rule 42 (statement -> expression .) + ENDIF reduce using rule 42 (statement -> expression .) + ENDPROCEDURE reduce using rule 42 (statement -> expression .) + SEMICOLON reduce using rule 42 (statement -> expression .) + NEXT reduce using rule 42 (statement -> expression .) + ENDFUNCTION reduce using rule 42 (statement -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -900,57 +904,57 @@ state 9 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 41 (statement -> expression .) ] - ! PLUS [ reduce using rule 41 (statement -> expression .) ] - ! MOD [ reduce using rule 41 (statement -> expression .) ] - ! DIV [ reduce using rule 41 (statement -> expression .) ] - ! POINTER [ reduce using rule 41 (statement -> expression .) ] + ! MINUS [ reduce using rule 42 (statement -> expression .) ] + ! PLUS [ reduce using rule 42 (statement -> expression .) ] + ! MOD [ reduce using rule 42 (statement -> expression .) ] + ! DIV [ reduce using rule 42 (statement -> expression .) ] + ! POINTER [ reduce using rule 42 (statement -> expression .) ] state 10 - (17) expression -> LEFT_SQUARE . array_items RIGHT_SQUARE - (18) expression -> LEFT_SQUARE . RIGHT_SQUARE - (19) array_items -> . array_items COMMA expression - (20) array_items -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (18) expression -> LEFT_SQUARE . array_items RIGHT_SQUARE + (19) expression -> LEFT_SQUARE . RIGHT_SQUARE + (20) array_items -> . array_items COMMA expression + (21) array_items -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN RIGHT_SQUARE shift and go to state 77 LEFT_SQUARE shift and go to state 10 @@ -975,45 +979,45 @@ state 10 state 11 - (21) statement -> INPUT . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (22) statement -> INPUT . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1036,47 +1040,47 @@ state 11 state 12 - (22) statement -> OUTPUT . output_expression - (24) output_expression -> . output_expression COMMA expression - (25) output_expression -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (23) statement -> OUTPUT . output_expression + (25) output_expression -> . output_expression COMMA expression + (26) output_expression -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1100,47 +1104,47 @@ state 12 state 13 - (23) statement -> _OUTPUT . output_expression - (24) output_expression -> . output_expression COMMA expression - (25) output_expression -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (24) statement -> _OUTPUT . output_expression + (25) output_expression -> . output_expression COMMA expression + (26) output_expression -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1164,46 +1168,46 @@ state 13 state 14 - (26) statement -> IF . expression THEN statements ELSE statements ENDIF - (27) statement -> IF . expression THEN statements ENDIF - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (27) statement -> IF . expression THEN statements ELSE statements ENDIF + (28) statement -> IF . expression THEN statements ENDIF + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1226,22 +1230,22 @@ state 14 state 15 - (28) statement -> CASE . OF expression cases ENDCASE + (29) statement -> CASE . OF expression cases ENDCASE OF shift and go to state 84 state 16 - (36) statement -> FOR . ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> FOR . ID ASSIGN expression TO expression statements NEXT ID + (37) statement -> FOR . ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> FOR . ID ASSIGN expression TO expression statements NEXT ID ID shift and go to state 85 state 17 - (38) statement -> REPEAT . statements UNTIL expression + (39) statement -> REPEAT . statements UNTIL expression (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -1249,110 +1253,111 @@ state 17 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -1403,46 +1408,46 @@ state 17 state 18 - (39) statement -> WHILE . expression DO statements ENDWHILE - (40) statement -> WHILE . expression statements ENDWHILE - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (40) statement -> WHILE . expression DO statements ENDWHILE + (41) statement -> WHILE . expression statements ENDWHILE + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1465,10 +1470,10 @@ state 18 state 19 - (82) statement -> PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (83) statement -> PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE ID shift and go to state 88 NEW shift and go to state 89 @@ -1476,45 +1481,45 @@ state 19 state 20 - (62) expression -> LEFT_PAREN . expression RIGHT_PAREN - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (63) expression -> LEFT_PAREN . expression RIGHT_PAREN + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1537,73 +1542,73 @@ state 20 state 21 - (140) expression -> NEW . ID - (141) expression -> NEW . ID LEFT_PAREN parameters RIGHT_PAREN + (141) expression -> NEW . ID + (142) expression -> NEW . ID LEFT_PAREN parameters RIGHT_PAREN ID shift and go to state 91 state 22 - (94) statement -> CALL . ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> CALL . ID LEFT_PAREN RIGHT_PAREN + (95) statement -> CALL . ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> CALL . ID LEFT_PAREN RIGHT_PAREN ID shift and go to state 92 state 23 - (96) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (97) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION ID shift and go to state 93 state 24 - (118) statement -> RETURN . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (119) statement -> RETURN . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1626,48 +1631,48 @@ state 24 state 25 - (119) statement -> OPENFILE . expression FOR READ - (120) statement -> OPENFILE . expression FOR WRITE - (121) statement -> OPENFILE . expression FOR APPEND - (122) statement -> OPENFILE . expression FOR RANDOM - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (120) statement -> OPENFILE . expression FOR READ + (121) statement -> OPENFILE . expression FOR WRITE + (122) statement -> OPENFILE . expression FOR APPEND + (123) statement -> OPENFILE . expression FOR RANDOM + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1690,46 +1695,46 @@ state 25 state 26 - (123) statement -> READFILE . expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> READFILE . expression COMMA ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (124) statement -> READFILE . expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> READFILE . expression COMMA ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1752,45 +1757,45 @@ state 26 state 27 - (125) statement -> WRITEFILE . expression COMMA expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (126) statement -> WRITEFILE . expression COMMA expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1813,45 +1818,45 @@ state 27 state 28 - (126) statement -> CLOSEFILE . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (127) statement -> CLOSEFILE . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1874,45 +1879,45 @@ state 28 state 29 - (127) statement -> SEEK . expression COMMA expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (128) statement -> SEEK . expression COMMA expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1935,55 +1940,55 @@ state 29 state 30 - (128) statement -> TYPE . ID statements ENDTYPE - (130) statement -> TYPE . ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> TYPE . ID EQUAL POINTER ID - (142) statement -> TYPE . ID EQUAL SET OF ID + (129) statement -> TYPE . ID statements ENDTYPE + (131) statement -> TYPE . ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> TYPE . ID EQUAL POINTER ID + (143) statement -> TYPE . ID EQUAL SET OF ID ID shift and go to state 100 state 31 - (133) expression -> POINTER . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (134) expression -> POINTER . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2006,104 +2011,104 @@ state 31 state 32 - (136) statement -> PASS . - - DELETE reduce using rule 136 (statement -> PASS .) - DECLARE reduce using rule 136 (statement -> PASS .) - PUBLIC reduce using rule 136 (statement -> PASS .) - PRIVATE reduce using rule 136 (statement -> PASS .) - CONSTANT reduce using rule 136 (statement -> PASS .) - INPUT reduce using rule 136 (statement -> PASS .) - OUTPUT reduce using rule 136 (statement -> PASS .) - _OUTPUT reduce using rule 136 (statement -> PASS .) - IF reduce using rule 136 (statement -> PASS .) - CASE reduce using rule 136 (statement -> PASS .) - FOR reduce using rule 136 (statement -> PASS .) - REPEAT reduce using rule 136 (statement -> PASS .) - WHILE reduce using rule 136 (statement -> PASS .) - PROCEDURE reduce using rule 136 (statement -> PASS .) - CALL reduce using rule 136 (statement -> PASS .) - FUNCTION reduce using rule 136 (statement -> PASS .) - RETURN reduce using rule 136 (statement -> PASS .) - OPENFILE reduce using rule 136 (statement -> PASS .) - READFILE reduce using rule 136 (statement -> PASS .) - WRITEFILE reduce using rule 136 (statement -> PASS .) - CLOSEFILE reduce using rule 136 (statement -> PASS .) - SEEK reduce using rule 136 (statement -> PASS .) - TYPE reduce using rule 136 (statement -> PASS .) - PASS reduce using rule 136 (statement -> PASS .) - IMPORT reduce using rule 136 (statement -> PASS .) - CLASS reduce using rule 136 (statement -> PASS .) - LEFT_SQUARE reduce using rule 136 (statement -> PASS .) - ID reduce using rule 136 (statement -> PASS .) - NOT reduce using rule 136 (statement -> PASS .) - MINUS reduce using rule 136 (statement -> PASS .) - PLUS reduce using rule 136 (statement -> PASS .) - LEFT_PAREN reduce using rule 136 (statement -> PASS .) - DATE reduce using rule 136 (statement -> PASS .) - BOOLEAN reduce using rule 136 (statement -> PASS .) - CHAR reduce using rule 136 (statement -> PASS .) - STRING reduce using rule 136 (statement -> PASS .) - REAL reduce using rule 136 (statement -> PASS .) - INTEGER reduce using rule 136 (statement -> PASS .) - MOD reduce using rule 136 (statement -> PASS .) - DIV reduce using rule 136 (statement -> PASS .) - POINTER reduce using rule 136 (statement -> PASS .) - NEW reduce using rule 136 (statement -> PASS .) - $end reduce using rule 136 (statement -> PASS .) - UNTIL reduce using rule 136 (statement -> PASS .) - ENDWHILE reduce using rule 136 (statement -> PASS .) - ENDTYPE reduce using rule 136 (statement -> PASS .) - ENDCLASS reduce using rule 136 (statement -> PASS .) - ELSE reduce using rule 136 (statement -> PASS .) - ENDIF reduce using rule 136 (statement -> PASS .) - ENDPROCEDURE reduce using rule 136 (statement -> PASS .) - SEMICOLON reduce using rule 136 (statement -> PASS .) - NEXT reduce using rule 136 (statement -> PASS .) - ENDFUNCTION reduce using rule 136 (statement -> PASS .) + (137) statement -> PASS . + + DELETE reduce using rule 137 (statement -> PASS .) + DECLARE reduce using rule 137 (statement -> PASS .) + PUBLIC reduce using rule 137 (statement -> PASS .) + PRIVATE reduce using rule 137 (statement -> PASS .) + CONSTANT reduce using rule 137 (statement -> PASS .) + INPUT reduce using rule 137 (statement -> PASS .) + OUTPUT reduce using rule 137 (statement -> PASS .) + _OUTPUT reduce using rule 137 (statement -> PASS .) + IF reduce using rule 137 (statement -> PASS .) + CASE reduce using rule 137 (statement -> PASS .) + FOR reduce using rule 137 (statement -> PASS .) + REPEAT reduce using rule 137 (statement -> PASS .) + WHILE reduce using rule 137 (statement -> PASS .) + PROCEDURE reduce using rule 137 (statement -> PASS .) + CALL reduce using rule 137 (statement -> PASS .) + FUNCTION reduce using rule 137 (statement -> PASS .) + RETURN reduce using rule 137 (statement -> PASS .) + OPENFILE reduce using rule 137 (statement -> PASS .) + READFILE reduce using rule 137 (statement -> PASS .) + WRITEFILE reduce using rule 137 (statement -> PASS .) + CLOSEFILE reduce using rule 137 (statement -> PASS .) + SEEK reduce using rule 137 (statement -> PASS .) + TYPE reduce using rule 137 (statement -> PASS .) + PASS reduce using rule 137 (statement -> PASS .) + IMPORT reduce using rule 137 (statement -> PASS .) + CLASS reduce using rule 137 (statement -> PASS .) + LEFT_SQUARE reduce using rule 137 (statement -> PASS .) + ID reduce using rule 137 (statement -> PASS .) + NOT reduce using rule 137 (statement -> PASS .) + MINUS reduce using rule 137 (statement -> PASS .) + PLUS reduce using rule 137 (statement -> PASS .) + LEFT_PAREN reduce using rule 137 (statement -> PASS .) + DATE reduce using rule 137 (statement -> PASS .) + BOOLEAN reduce using rule 137 (statement -> PASS .) + CHAR reduce using rule 137 (statement -> PASS .) + STRING reduce using rule 137 (statement -> PASS .) + REAL reduce using rule 137 (statement -> PASS .) + INTEGER reduce using rule 137 (statement -> PASS .) + MOD reduce using rule 137 (statement -> PASS .) + DIV reduce using rule 137 (statement -> PASS .) + POINTER reduce using rule 137 (statement -> PASS .) + NEW reduce using rule 137 (statement -> PASS .) + $end reduce using rule 137 (statement -> PASS .) + UNTIL reduce using rule 137 (statement -> PASS .) + ENDWHILE reduce using rule 137 (statement -> PASS .) + ENDTYPE reduce using rule 137 (statement -> PASS .) + ENDCLASS reduce using rule 137 (statement -> PASS .) + ELSE reduce using rule 137 (statement -> PASS .) + ENDIF reduce using rule 137 (statement -> PASS .) + ENDPROCEDURE reduce using rule 137 (statement -> PASS .) + SEMICOLON reduce using rule 137 (statement -> PASS .) + NEXT reduce using rule 137 (statement -> PASS .) + ENDFUNCTION reduce using rule 137 (statement -> PASS .) state 33 - (137) statement -> IMPORT . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (138) statement -> IMPORT . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2126,53 +2131,53 @@ state 33 state 34 - (138) statement -> CLASS . ID statements ENDCLASS - (139) statement -> CLASS . ID INHERITS ID statements ENDCLASS + (139) statement -> CLASS . ID statements ENDCLASS + (140) statement -> CLASS . ID INHERITS ID statements ENDCLASS ID shift and go to state 103 state 35 - (46) expression -> NOT . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (47) expression -> NOT . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2195,59 +2200,59 @@ state 35 state 36 - (115) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN LEFT_PAREN shift and go to state 105 state 37 - (116) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN LEFT_PAREN shift and go to state 106 state 38 - (57) expression -> MINUS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (58) expression -> MINUS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2270,45 +2275,45 @@ state 38 state 39 - (58) expression -> PLUS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (59) expression -> PLUS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2331,488 +2336,488 @@ state 39 state 40 - (63) expression -> DATE . - - ASSIGN reduce using rule 63 (expression -> DATE .) - OR reduce using rule 63 (expression -> DATE .) - AND reduce using rule 63 (expression -> DATE .) - EQUAL reduce using rule 63 (expression -> DATE .) - NOT_EQUAL reduce using rule 63 (expression -> DATE .) - LESS reduce using rule 63 (expression -> DATE .) - GREATER reduce using rule 63 (expression -> DATE .) - LESS_EQUAL reduce using rule 63 (expression -> DATE .) - GREATER_EQUAL reduce using rule 63 (expression -> DATE .) - MOD reduce using rule 63 (expression -> DATE .) - DIV reduce using rule 63 (expression -> DATE .) - MUL reduce using rule 63 (expression -> DATE .) - N_DIV reduce using rule 63 (expression -> DATE .) - PLUS reduce using rule 63 (expression -> DATE .) - MINUS reduce using rule 63 (expression -> DATE .) - CONNECT reduce using rule 63 (expression -> DATE .) - DOT reduce using rule 63 (expression -> DATE .) - POINTER reduce using rule 63 (expression -> DATE .) - DELETE reduce using rule 63 (expression -> DATE .) - DECLARE reduce using rule 63 (expression -> DATE .) - PUBLIC reduce using rule 63 (expression -> DATE .) - PRIVATE reduce using rule 63 (expression -> DATE .) - CONSTANT reduce using rule 63 (expression -> DATE .) - INPUT reduce using rule 63 (expression -> DATE .) - OUTPUT reduce using rule 63 (expression -> DATE .) - _OUTPUT reduce using rule 63 (expression -> DATE .) - IF reduce using rule 63 (expression -> DATE .) - CASE reduce using rule 63 (expression -> DATE .) - FOR reduce using rule 63 (expression -> DATE .) - REPEAT reduce using rule 63 (expression -> DATE .) - WHILE reduce using rule 63 (expression -> DATE .) - PROCEDURE reduce using rule 63 (expression -> DATE .) - CALL reduce using rule 63 (expression -> DATE .) - FUNCTION reduce using rule 63 (expression -> DATE .) - RETURN reduce using rule 63 (expression -> DATE .) - OPENFILE reduce using rule 63 (expression -> DATE .) - READFILE reduce using rule 63 (expression -> DATE .) - WRITEFILE reduce using rule 63 (expression -> DATE .) - CLOSEFILE reduce using rule 63 (expression -> DATE .) - SEEK reduce using rule 63 (expression -> DATE .) - TYPE reduce using rule 63 (expression -> DATE .) - PASS reduce using rule 63 (expression -> DATE .) - IMPORT reduce using rule 63 (expression -> DATE .) - CLASS reduce using rule 63 (expression -> DATE .) - LEFT_SQUARE reduce using rule 63 (expression -> DATE .) - ID reduce using rule 63 (expression -> DATE .) - NOT reduce using rule 63 (expression -> DATE .) - LEFT_PAREN reduce using rule 63 (expression -> DATE .) - DATE reduce using rule 63 (expression -> DATE .) - BOOLEAN reduce using rule 63 (expression -> DATE .) - CHAR reduce using rule 63 (expression -> DATE .) - STRING reduce using rule 63 (expression -> DATE .) - REAL reduce using rule 63 (expression -> DATE .) - INTEGER reduce using rule 63 (expression -> DATE .) - NEW reduce using rule 63 (expression -> DATE .) - $end reduce using rule 63 (expression -> DATE .) - RIGHT_SQUARE reduce using rule 63 (expression -> DATE .) - COMMA reduce using rule 63 (expression -> DATE .) - UNTIL reduce using rule 63 (expression -> DATE .) - ENDWHILE reduce using rule 63 (expression -> DATE .) - ENDTYPE reduce using rule 63 (expression -> DATE .) - ENDCLASS reduce using rule 63 (expression -> DATE .) - ELSE reduce using rule 63 (expression -> DATE .) - ENDIF reduce using rule 63 (expression -> DATE .) - ENDPROCEDURE reduce using rule 63 (expression -> DATE .) - SEMICOLON reduce using rule 63 (expression -> DATE .) - NEXT reduce using rule 63 (expression -> DATE .) - ENDFUNCTION reduce using rule 63 (expression -> DATE .) - THEN reduce using rule 63 (expression -> DATE .) - DO reduce using rule 63 (expression -> DATE .) - RIGHT_PAREN reduce using rule 63 (expression -> DATE .) - OTHERWISE reduce using rule 63 (expression -> DATE .) - TO reduce using rule 63 (expression -> DATE .) - COLON reduce using rule 63 (expression -> DATE .) - STEP reduce using rule 63 (expression -> DATE .) + (64) expression -> DATE . + + ASSIGN reduce using rule 64 (expression -> DATE .) + OR reduce using rule 64 (expression -> DATE .) + AND reduce using rule 64 (expression -> DATE .) + EQUAL reduce using rule 64 (expression -> DATE .) + NOT_EQUAL reduce using rule 64 (expression -> DATE .) + LESS reduce using rule 64 (expression -> DATE .) + GREATER reduce using rule 64 (expression -> DATE .) + LESS_EQUAL reduce using rule 64 (expression -> DATE .) + GREATER_EQUAL reduce using rule 64 (expression -> DATE .) + MOD reduce using rule 64 (expression -> DATE .) + DIV reduce using rule 64 (expression -> DATE .) + MUL reduce using rule 64 (expression -> DATE .) + N_DIV reduce using rule 64 (expression -> DATE .) + PLUS reduce using rule 64 (expression -> DATE .) + MINUS reduce using rule 64 (expression -> DATE .) + CONNECT reduce using rule 64 (expression -> DATE .) + DOT reduce using rule 64 (expression -> DATE .) + POINTER reduce using rule 64 (expression -> DATE .) + DELETE reduce using rule 64 (expression -> DATE .) + DECLARE reduce using rule 64 (expression -> DATE .) + PUBLIC reduce using rule 64 (expression -> DATE .) + PRIVATE reduce using rule 64 (expression -> DATE .) + CONSTANT reduce using rule 64 (expression -> DATE .) + INPUT reduce using rule 64 (expression -> DATE .) + OUTPUT reduce using rule 64 (expression -> DATE .) + _OUTPUT reduce using rule 64 (expression -> DATE .) + IF reduce using rule 64 (expression -> DATE .) + CASE reduce using rule 64 (expression -> DATE .) + FOR reduce using rule 64 (expression -> DATE .) + REPEAT reduce using rule 64 (expression -> DATE .) + WHILE reduce using rule 64 (expression -> DATE .) + PROCEDURE reduce using rule 64 (expression -> DATE .) + CALL reduce using rule 64 (expression -> DATE .) + FUNCTION reduce using rule 64 (expression -> DATE .) + RETURN reduce using rule 64 (expression -> DATE .) + OPENFILE reduce using rule 64 (expression -> DATE .) + READFILE reduce using rule 64 (expression -> DATE .) + WRITEFILE reduce using rule 64 (expression -> DATE .) + CLOSEFILE reduce using rule 64 (expression -> DATE .) + SEEK reduce using rule 64 (expression -> DATE .) + TYPE reduce using rule 64 (expression -> DATE .) + PASS reduce using rule 64 (expression -> DATE .) + IMPORT reduce using rule 64 (expression -> DATE .) + CLASS reduce using rule 64 (expression -> DATE .) + LEFT_SQUARE reduce using rule 64 (expression -> DATE .) + ID reduce using rule 64 (expression -> DATE .) + NOT reduce using rule 64 (expression -> DATE .) + LEFT_PAREN reduce using rule 64 (expression -> DATE .) + DATE reduce using rule 64 (expression -> DATE .) + BOOLEAN reduce using rule 64 (expression -> DATE .) + CHAR reduce using rule 64 (expression -> DATE .) + STRING reduce using rule 64 (expression -> DATE .) + REAL reduce using rule 64 (expression -> DATE .) + INTEGER reduce using rule 64 (expression -> DATE .) + NEW reduce using rule 64 (expression -> DATE .) + $end reduce using rule 64 (expression -> DATE .) + RIGHT_SQUARE reduce using rule 64 (expression -> DATE .) + COMMA reduce using rule 64 (expression -> DATE .) + UNTIL reduce using rule 64 (expression -> DATE .) + ENDWHILE reduce using rule 64 (expression -> DATE .) + ENDTYPE reduce using rule 64 (expression -> DATE .) + ENDCLASS reduce using rule 64 (expression -> DATE .) + ELSE reduce using rule 64 (expression -> DATE .) + ENDIF reduce using rule 64 (expression -> DATE .) + ENDPROCEDURE reduce using rule 64 (expression -> DATE .) + SEMICOLON reduce using rule 64 (expression -> DATE .) + NEXT reduce using rule 64 (expression -> DATE .) + ENDFUNCTION reduce using rule 64 (expression -> DATE .) + THEN reduce using rule 64 (expression -> DATE .) + DO reduce using rule 64 (expression -> DATE .) + RIGHT_PAREN reduce using rule 64 (expression -> DATE .) + OTHERWISE reduce using rule 64 (expression -> DATE .) + TO reduce using rule 64 (expression -> DATE .) + COLON reduce using rule 64 (expression -> DATE .) + STEP reduce using rule 64 (expression -> DATE .) state 41 - (64) expression -> BOOLEAN . - - ASSIGN reduce using rule 64 (expression -> BOOLEAN .) - OR reduce using rule 64 (expression -> BOOLEAN .) - AND reduce using rule 64 (expression -> BOOLEAN .) - EQUAL reduce using rule 64 (expression -> BOOLEAN .) - NOT_EQUAL reduce using rule 64 (expression -> BOOLEAN .) - LESS reduce using rule 64 (expression -> BOOLEAN .) - GREATER reduce using rule 64 (expression -> BOOLEAN .) - LESS_EQUAL reduce using rule 64 (expression -> BOOLEAN .) - GREATER_EQUAL reduce using rule 64 (expression -> BOOLEAN .) - MOD reduce using rule 64 (expression -> BOOLEAN .) - DIV reduce using rule 64 (expression -> BOOLEAN .) - MUL reduce using rule 64 (expression -> BOOLEAN .) - N_DIV reduce using rule 64 (expression -> BOOLEAN .) - PLUS reduce using rule 64 (expression -> BOOLEAN .) - MINUS reduce using rule 64 (expression -> BOOLEAN .) - CONNECT reduce using rule 64 (expression -> BOOLEAN .) - DOT reduce using rule 64 (expression -> BOOLEAN .) - POINTER reduce using rule 64 (expression -> BOOLEAN .) - DELETE reduce using rule 64 (expression -> BOOLEAN .) - DECLARE reduce using rule 64 (expression -> BOOLEAN .) - PUBLIC reduce using rule 64 (expression -> BOOLEAN .) - PRIVATE reduce using rule 64 (expression -> BOOLEAN .) - CONSTANT reduce using rule 64 (expression -> BOOLEAN .) - INPUT reduce using rule 64 (expression -> BOOLEAN .) - OUTPUT reduce using rule 64 (expression -> BOOLEAN .) - _OUTPUT reduce using rule 64 (expression -> BOOLEAN .) - IF reduce using rule 64 (expression -> BOOLEAN .) - CASE reduce using rule 64 (expression -> BOOLEAN .) - FOR reduce using rule 64 (expression -> BOOLEAN .) - REPEAT reduce using rule 64 (expression -> BOOLEAN .) - WHILE reduce using rule 64 (expression -> BOOLEAN .) - PROCEDURE reduce using rule 64 (expression -> BOOLEAN .) - CALL reduce using rule 64 (expression -> BOOLEAN .) - FUNCTION reduce using rule 64 (expression -> BOOLEAN .) - RETURN reduce using rule 64 (expression -> BOOLEAN .) - OPENFILE reduce using rule 64 (expression -> BOOLEAN .) - READFILE reduce using rule 64 (expression -> BOOLEAN .) - WRITEFILE reduce using rule 64 (expression -> BOOLEAN .) - CLOSEFILE reduce using rule 64 (expression -> BOOLEAN .) - SEEK reduce using rule 64 (expression -> BOOLEAN .) - TYPE reduce using rule 64 (expression -> BOOLEAN .) - PASS reduce using rule 64 (expression -> BOOLEAN .) - IMPORT reduce using rule 64 (expression -> BOOLEAN .) - CLASS reduce using rule 64 (expression -> BOOLEAN .) - LEFT_SQUARE reduce using rule 64 (expression -> BOOLEAN .) - ID reduce using rule 64 (expression -> BOOLEAN .) - NOT reduce using rule 64 (expression -> BOOLEAN .) - LEFT_PAREN reduce using rule 64 (expression -> BOOLEAN .) - DATE reduce using rule 64 (expression -> BOOLEAN .) - BOOLEAN reduce using rule 64 (expression -> BOOLEAN .) - CHAR reduce using rule 64 (expression -> BOOLEAN .) - STRING reduce using rule 64 (expression -> BOOLEAN .) - REAL reduce using rule 64 (expression -> BOOLEAN .) - INTEGER reduce using rule 64 (expression -> BOOLEAN .) - NEW reduce using rule 64 (expression -> BOOLEAN .) - $end reduce using rule 64 (expression -> BOOLEAN .) - RIGHT_SQUARE reduce using rule 64 (expression -> BOOLEAN .) - COMMA reduce using rule 64 (expression -> BOOLEAN .) - UNTIL reduce using rule 64 (expression -> BOOLEAN .) - ENDWHILE reduce using rule 64 (expression -> BOOLEAN .) - ENDTYPE reduce using rule 64 (expression -> BOOLEAN .) - ENDCLASS reduce using rule 64 (expression -> BOOLEAN .) - ELSE reduce using rule 64 (expression -> BOOLEAN .) - ENDIF reduce using rule 64 (expression -> BOOLEAN .) - ENDPROCEDURE reduce using rule 64 (expression -> BOOLEAN .) - SEMICOLON reduce using rule 64 (expression -> BOOLEAN .) - NEXT reduce using rule 64 (expression -> BOOLEAN .) - ENDFUNCTION reduce using rule 64 (expression -> BOOLEAN .) - THEN reduce using rule 64 (expression -> BOOLEAN .) - DO reduce using rule 64 (expression -> BOOLEAN .) - RIGHT_PAREN reduce using rule 64 (expression -> BOOLEAN .) - OTHERWISE reduce using rule 64 (expression -> BOOLEAN .) - TO reduce using rule 64 (expression -> BOOLEAN .) - COLON reduce using rule 64 (expression -> BOOLEAN .) - STEP reduce using rule 64 (expression -> BOOLEAN .) + (65) expression -> BOOLEAN . + + ASSIGN reduce using rule 65 (expression -> BOOLEAN .) + OR reduce using rule 65 (expression -> BOOLEAN .) + AND reduce using rule 65 (expression -> BOOLEAN .) + EQUAL reduce using rule 65 (expression -> BOOLEAN .) + NOT_EQUAL reduce using rule 65 (expression -> BOOLEAN .) + LESS reduce using rule 65 (expression -> BOOLEAN .) + GREATER reduce using rule 65 (expression -> BOOLEAN .) + LESS_EQUAL reduce using rule 65 (expression -> BOOLEAN .) + GREATER_EQUAL reduce using rule 65 (expression -> BOOLEAN .) + MOD reduce using rule 65 (expression -> BOOLEAN .) + DIV reduce using rule 65 (expression -> BOOLEAN .) + MUL reduce using rule 65 (expression -> BOOLEAN .) + N_DIV reduce using rule 65 (expression -> BOOLEAN .) + PLUS reduce using rule 65 (expression -> BOOLEAN .) + MINUS reduce using rule 65 (expression -> BOOLEAN .) + CONNECT reduce using rule 65 (expression -> BOOLEAN .) + DOT reduce using rule 65 (expression -> BOOLEAN .) + POINTER reduce using rule 65 (expression -> BOOLEAN .) + DELETE reduce using rule 65 (expression -> BOOLEAN .) + DECLARE reduce using rule 65 (expression -> BOOLEAN .) + PUBLIC reduce using rule 65 (expression -> BOOLEAN .) + PRIVATE reduce using rule 65 (expression -> BOOLEAN .) + CONSTANT reduce using rule 65 (expression -> BOOLEAN .) + INPUT reduce using rule 65 (expression -> BOOLEAN .) + OUTPUT reduce using rule 65 (expression -> BOOLEAN .) + _OUTPUT reduce using rule 65 (expression -> BOOLEAN .) + IF reduce using rule 65 (expression -> BOOLEAN .) + CASE reduce using rule 65 (expression -> BOOLEAN .) + FOR reduce using rule 65 (expression -> BOOLEAN .) + REPEAT reduce using rule 65 (expression -> BOOLEAN .) + WHILE reduce using rule 65 (expression -> BOOLEAN .) + PROCEDURE reduce using rule 65 (expression -> BOOLEAN .) + CALL reduce using rule 65 (expression -> BOOLEAN .) + FUNCTION reduce using rule 65 (expression -> BOOLEAN .) + RETURN reduce using rule 65 (expression -> BOOLEAN .) + OPENFILE reduce using rule 65 (expression -> BOOLEAN .) + READFILE reduce using rule 65 (expression -> BOOLEAN .) + WRITEFILE reduce using rule 65 (expression -> BOOLEAN .) + CLOSEFILE reduce using rule 65 (expression -> BOOLEAN .) + SEEK reduce using rule 65 (expression -> BOOLEAN .) + TYPE reduce using rule 65 (expression -> BOOLEAN .) + PASS reduce using rule 65 (expression -> BOOLEAN .) + IMPORT reduce using rule 65 (expression -> BOOLEAN .) + CLASS reduce using rule 65 (expression -> BOOLEAN .) + LEFT_SQUARE reduce using rule 65 (expression -> BOOLEAN .) + ID reduce using rule 65 (expression -> BOOLEAN .) + NOT reduce using rule 65 (expression -> BOOLEAN .) + LEFT_PAREN reduce using rule 65 (expression -> BOOLEAN .) + DATE reduce using rule 65 (expression -> BOOLEAN .) + BOOLEAN reduce using rule 65 (expression -> BOOLEAN .) + CHAR reduce using rule 65 (expression -> BOOLEAN .) + STRING reduce using rule 65 (expression -> BOOLEAN .) + REAL reduce using rule 65 (expression -> BOOLEAN .) + INTEGER reduce using rule 65 (expression -> BOOLEAN .) + NEW reduce using rule 65 (expression -> BOOLEAN .) + $end reduce using rule 65 (expression -> BOOLEAN .) + RIGHT_SQUARE reduce using rule 65 (expression -> BOOLEAN .) + COMMA reduce using rule 65 (expression -> BOOLEAN .) + UNTIL reduce using rule 65 (expression -> BOOLEAN .) + ENDWHILE reduce using rule 65 (expression -> BOOLEAN .) + ENDTYPE reduce using rule 65 (expression -> BOOLEAN .) + ENDCLASS reduce using rule 65 (expression -> BOOLEAN .) + ELSE reduce using rule 65 (expression -> BOOLEAN .) + ENDIF reduce using rule 65 (expression -> BOOLEAN .) + ENDPROCEDURE reduce using rule 65 (expression -> BOOLEAN .) + SEMICOLON reduce using rule 65 (expression -> BOOLEAN .) + NEXT reduce using rule 65 (expression -> BOOLEAN .) + ENDFUNCTION reduce using rule 65 (expression -> BOOLEAN .) + THEN reduce using rule 65 (expression -> BOOLEAN .) + DO reduce using rule 65 (expression -> BOOLEAN .) + RIGHT_PAREN reduce using rule 65 (expression -> BOOLEAN .) + OTHERWISE reduce using rule 65 (expression -> BOOLEAN .) + TO reduce using rule 65 (expression -> BOOLEAN .) + COLON reduce using rule 65 (expression -> BOOLEAN .) + STEP reduce using rule 65 (expression -> BOOLEAN .) state 42 - (65) expression -> CHAR . - - ASSIGN reduce using rule 65 (expression -> CHAR .) - OR reduce using rule 65 (expression -> CHAR .) - AND reduce using rule 65 (expression -> CHAR .) - EQUAL reduce using rule 65 (expression -> CHAR .) - NOT_EQUAL reduce using rule 65 (expression -> CHAR .) - LESS reduce using rule 65 (expression -> CHAR .) - GREATER reduce using rule 65 (expression -> CHAR .) - LESS_EQUAL reduce using rule 65 (expression -> CHAR .) - GREATER_EQUAL reduce using rule 65 (expression -> CHAR .) - MOD reduce using rule 65 (expression -> CHAR .) - DIV reduce using rule 65 (expression -> CHAR .) - MUL reduce using rule 65 (expression -> CHAR .) - N_DIV reduce using rule 65 (expression -> CHAR .) - PLUS reduce using rule 65 (expression -> CHAR .) - MINUS reduce using rule 65 (expression -> CHAR .) - CONNECT reduce using rule 65 (expression -> CHAR .) - DOT reduce using rule 65 (expression -> CHAR .) - POINTER reduce using rule 65 (expression -> CHAR .) - DELETE reduce using rule 65 (expression -> CHAR .) - DECLARE reduce using rule 65 (expression -> CHAR .) - PUBLIC reduce using rule 65 (expression -> CHAR .) - PRIVATE reduce using rule 65 (expression -> CHAR .) - CONSTANT reduce using rule 65 (expression -> CHAR .) - INPUT reduce using rule 65 (expression -> CHAR .) - OUTPUT reduce using rule 65 (expression -> CHAR .) - _OUTPUT reduce using rule 65 (expression -> CHAR .) - IF reduce using rule 65 (expression -> CHAR .) - CASE reduce using rule 65 (expression -> CHAR .) - FOR reduce using rule 65 (expression -> CHAR .) - REPEAT reduce using rule 65 (expression -> CHAR .) - WHILE reduce using rule 65 (expression -> CHAR .) - PROCEDURE reduce using rule 65 (expression -> CHAR .) - CALL reduce using rule 65 (expression -> CHAR .) - FUNCTION reduce using rule 65 (expression -> CHAR .) - RETURN reduce using rule 65 (expression -> CHAR .) - OPENFILE reduce using rule 65 (expression -> CHAR .) - READFILE reduce using rule 65 (expression -> CHAR .) - WRITEFILE reduce using rule 65 (expression -> CHAR .) - CLOSEFILE reduce using rule 65 (expression -> CHAR .) - SEEK reduce using rule 65 (expression -> CHAR .) - TYPE reduce using rule 65 (expression -> CHAR .) - PASS reduce using rule 65 (expression -> CHAR .) - IMPORT reduce using rule 65 (expression -> CHAR .) - CLASS reduce using rule 65 (expression -> CHAR .) - LEFT_SQUARE reduce using rule 65 (expression -> CHAR .) - ID reduce using rule 65 (expression -> CHAR .) - NOT reduce using rule 65 (expression -> CHAR .) - LEFT_PAREN reduce using rule 65 (expression -> CHAR .) - DATE reduce using rule 65 (expression -> CHAR .) - BOOLEAN reduce using rule 65 (expression -> CHAR .) - CHAR reduce using rule 65 (expression -> CHAR .) - STRING reduce using rule 65 (expression -> CHAR .) - REAL reduce using rule 65 (expression -> CHAR .) - INTEGER reduce using rule 65 (expression -> CHAR .) - NEW reduce using rule 65 (expression -> CHAR .) - $end reduce using rule 65 (expression -> CHAR .) - RIGHT_SQUARE reduce using rule 65 (expression -> CHAR .) - COMMA reduce using rule 65 (expression -> CHAR .) - UNTIL reduce using rule 65 (expression -> CHAR .) - ENDWHILE reduce using rule 65 (expression -> CHAR .) - ENDTYPE reduce using rule 65 (expression -> CHAR .) - ENDCLASS reduce using rule 65 (expression -> CHAR .) - ELSE reduce using rule 65 (expression -> CHAR .) - ENDIF reduce using rule 65 (expression -> CHAR .) - ENDPROCEDURE reduce using rule 65 (expression -> CHAR .) - SEMICOLON reduce using rule 65 (expression -> CHAR .) - NEXT reduce using rule 65 (expression -> CHAR .) - ENDFUNCTION reduce using rule 65 (expression -> CHAR .) - THEN reduce using rule 65 (expression -> CHAR .) - DO reduce using rule 65 (expression -> CHAR .) - RIGHT_PAREN reduce using rule 65 (expression -> CHAR .) - OTHERWISE reduce using rule 65 (expression -> CHAR .) - TO reduce using rule 65 (expression -> CHAR .) - COLON reduce using rule 65 (expression -> CHAR .) - STEP reduce using rule 65 (expression -> CHAR .) + (66) expression -> CHAR . + + ASSIGN reduce using rule 66 (expression -> CHAR .) + OR reduce using rule 66 (expression -> CHAR .) + AND reduce using rule 66 (expression -> CHAR .) + EQUAL reduce using rule 66 (expression -> CHAR .) + NOT_EQUAL reduce using rule 66 (expression -> CHAR .) + LESS reduce using rule 66 (expression -> CHAR .) + GREATER reduce using rule 66 (expression -> CHAR .) + LESS_EQUAL reduce using rule 66 (expression -> CHAR .) + GREATER_EQUAL reduce using rule 66 (expression -> CHAR .) + MOD reduce using rule 66 (expression -> CHAR .) + DIV reduce using rule 66 (expression -> CHAR .) + MUL reduce using rule 66 (expression -> CHAR .) + N_DIV reduce using rule 66 (expression -> CHAR .) + PLUS reduce using rule 66 (expression -> CHAR .) + MINUS reduce using rule 66 (expression -> CHAR .) + CONNECT reduce using rule 66 (expression -> CHAR .) + DOT reduce using rule 66 (expression -> CHAR .) + POINTER reduce using rule 66 (expression -> CHAR .) + DELETE reduce using rule 66 (expression -> CHAR .) + DECLARE reduce using rule 66 (expression -> CHAR .) + PUBLIC reduce using rule 66 (expression -> CHAR .) + PRIVATE reduce using rule 66 (expression -> CHAR .) + CONSTANT reduce using rule 66 (expression -> CHAR .) + INPUT reduce using rule 66 (expression -> CHAR .) + OUTPUT reduce using rule 66 (expression -> CHAR .) + _OUTPUT reduce using rule 66 (expression -> CHAR .) + IF reduce using rule 66 (expression -> CHAR .) + CASE reduce using rule 66 (expression -> CHAR .) + FOR reduce using rule 66 (expression -> CHAR .) + REPEAT reduce using rule 66 (expression -> CHAR .) + WHILE reduce using rule 66 (expression -> CHAR .) + PROCEDURE reduce using rule 66 (expression -> CHAR .) + CALL reduce using rule 66 (expression -> CHAR .) + FUNCTION reduce using rule 66 (expression -> CHAR .) + RETURN reduce using rule 66 (expression -> CHAR .) + OPENFILE reduce using rule 66 (expression -> CHAR .) + READFILE reduce using rule 66 (expression -> CHAR .) + WRITEFILE reduce using rule 66 (expression -> CHAR .) + CLOSEFILE reduce using rule 66 (expression -> CHAR .) + SEEK reduce using rule 66 (expression -> CHAR .) + TYPE reduce using rule 66 (expression -> CHAR .) + PASS reduce using rule 66 (expression -> CHAR .) + IMPORT reduce using rule 66 (expression -> CHAR .) + CLASS reduce using rule 66 (expression -> CHAR .) + LEFT_SQUARE reduce using rule 66 (expression -> CHAR .) + ID reduce using rule 66 (expression -> CHAR .) + NOT reduce using rule 66 (expression -> CHAR .) + LEFT_PAREN reduce using rule 66 (expression -> CHAR .) + DATE reduce using rule 66 (expression -> CHAR .) + BOOLEAN reduce using rule 66 (expression -> CHAR .) + CHAR reduce using rule 66 (expression -> CHAR .) + STRING reduce using rule 66 (expression -> CHAR .) + REAL reduce using rule 66 (expression -> CHAR .) + INTEGER reduce using rule 66 (expression -> CHAR .) + NEW reduce using rule 66 (expression -> CHAR .) + $end reduce using rule 66 (expression -> CHAR .) + RIGHT_SQUARE reduce using rule 66 (expression -> CHAR .) + COMMA reduce using rule 66 (expression -> CHAR .) + UNTIL reduce using rule 66 (expression -> CHAR .) + ENDWHILE reduce using rule 66 (expression -> CHAR .) + ENDTYPE reduce using rule 66 (expression -> CHAR .) + ENDCLASS reduce using rule 66 (expression -> CHAR .) + ELSE reduce using rule 66 (expression -> CHAR .) + ENDIF reduce using rule 66 (expression -> CHAR .) + ENDPROCEDURE reduce using rule 66 (expression -> CHAR .) + SEMICOLON reduce using rule 66 (expression -> CHAR .) + NEXT reduce using rule 66 (expression -> CHAR .) + ENDFUNCTION reduce using rule 66 (expression -> CHAR .) + THEN reduce using rule 66 (expression -> CHAR .) + DO reduce using rule 66 (expression -> CHAR .) + RIGHT_PAREN reduce using rule 66 (expression -> CHAR .) + OTHERWISE reduce using rule 66 (expression -> CHAR .) + TO reduce using rule 66 (expression -> CHAR .) + COLON reduce using rule 66 (expression -> CHAR .) + STEP reduce using rule 66 (expression -> CHAR .) state 43 - (66) expression -> STRING . - - ASSIGN reduce using rule 66 (expression -> STRING .) - OR reduce using rule 66 (expression -> STRING .) - AND reduce using rule 66 (expression -> STRING .) - EQUAL reduce using rule 66 (expression -> STRING .) - NOT_EQUAL reduce using rule 66 (expression -> STRING .) - LESS reduce using rule 66 (expression -> STRING .) - GREATER reduce using rule 66 (expression -> STRING .) - LESS_EQUAL reduce using rule 66 (expression -> STRING .) - GREATER_EQUAL reduce using rule 66 (expression -> STRING .) - MOD reduce using rule 66 (expression -> STRING .) - DIV reduce using rule 66 (expression -> STRING .) - MUL reduce using rule 66 (expression -> STRING .) - N_DIV reduce using rule 66 (expression -> STRING .) - PLUS reduce using rule 66 (expression -> STRING .) - MINUS reduce using rule 66 (expression -> STRING .) - CONNECT reduce using rule 66 (expression -> STRING .) - DOT reduce using rule 66 (expression -> STRING .) - POINTER reduce using rule 66 (expression -> STRING .) - DELETE reduce using rule 66 (expression -> STRING .) - DECLARE reduce using rule 66 (expression -> STRING .) - PUBLIC reduce using rule 66 (expression -> STRING .) - PRIVATE reduce using rule 66 (expression -> STRING .) - CONSTANT reduce using rule 66 (expression -> STRING .) - INPUT reduce using rule 66 (expression -> STRING .) - OUTPUT reduce using rule 66 (expression -> STRING .) - _OUTPUT reduce using rule 66 (expression -> STRING .) - IF reduce using rule 66 (expression -> STRING .) - CASE reduce using rule 66 (expression -> STRING .) - FOR reduce using rule 66 (expression -> STRING .) - REPEAT reduce using rule 66 (expression -> STRING .) - WHILE reduce using rule 66 (expression -> STRING .) - PROCEDURE reduce using rule 66 (expression -> STRING .) - CALL reduce using rule 66 (expression -> STRING .) - FUNCTION reduce using rule 66 (expression -> STRING .) - RETURN reduce using rule 66 (expression -> STRING .) - OPENFILE reduce using rule 66 (expression -> STRING .) - READFILE reduce using rule 66 (expression -> STRING .) - WRITEFILE reduce using rule 66 (expression -> STRING .) - CLOSEFILE reduce using rule 66 (expression -> STRING .) - SEEK reduce using rule 66 (expression -> STRING .) - TYPE reduce using rule 66 (expression -> STRING .) - PASS reduce using rule 66 (expression -> STRING .) - IMPORT reduce using rule 66 (expression -> STRING .) - CLASS reduce using rule 66 (expression -> STRING .) - LEFT_SQUARE reduce using rule 66 (expression -> STRING .) - ID reduce using rule 66 (expression -> STRING .) - NOT reduce using rule 66 (expression -> STRING .) - LEFT_PAREN reduce using rule 66 (expression -> STRING .) - DATE reduce using rule 66 (expression -> STRING .) - BOOLEAN reduce using rule 66 (expression -> STRING .) - CHAR reduce using rule 66 (expression -> STRING .) - STRING reduce using rule 66 (expression -> STRING .) - REAL reduce using rule 66 (expression -> STRING .) - INTEGER reduce using rule 66 (expression -> STRING .) - NEW reduce using rule 66 (expression -> STRING .) - $end reduce using rule 66 (expression -> STRING .) - RIGHT_SQUARE reduce using rule 66 (expression -> STRING .) - COMMA reduce using rule 66 (expression -> STRING .) - UNTIL reduce using rule 66 (expression -> STRING .) - ENDWHILE reduce using rule 66 (expression -> STRING .) - ENDTYPE reduce using rule 66 (expression -> STRING .) - ENDCLASS reduce using rule 66 (expression -> STRING .) - ELSE reduce using rule 66 (expression -> STRING .) - ENDIF reduce using rule 66 (expression -> STRING .) - ENDPROCEDURE reduce using rule 66 (expression -> STRING .) - SEMICOLON reduce using rule 66 (expression -> STRING .) - NEXT reduce using rule 66 (expression -> STRING .) - ENDFUNCTION reduce using rule 66 (expression -> STRING .) - THEN reduce using rule 66 (expression -> STRING .) - DO reduce using rule 66 (expression -> STRING .) - RIGHT_PAREN reduce using rule 66 (expression -> STRING .) - OTHERWISE reduce using rule 66 (expression -> STRING .) - TO reduce using rule 66 (expression -> STRING .) - COLON reduce using rule 66 (expression -> STRING .) - STEP reduce using rule 66 (expression -> STRING .) + (67) expression -> STRING . + + ASSIGN reduce using rule 67 (expression -> STRING .) + OR reduce using rule 67 (expression -> STRING .) + AND reduce using rule 67 (expression -> STRING .) + EQUAL reduce using rule 67 (expression -> STRING .) + NOT_EQUAL reduce using rule 67 (expression -> STRING .) + LESS reduce using rule 67 (expression -> STRING .) + GREATER reduce using rule 67 (expression -> STRING .) + LESS_EQUAL reduce using rule 67 (expression -> STRING .) + GREATER_EQUAL reduce using rule 67 (expression -> STRING .) + MOD reduce using rule 67 (expression -> STRING .) + DIV reduce using rule 67 (expression -> STRING .) + MUL reduce using rule 67 (expression -> STRING .) + N_DIV reduce using rule 67 (expression -> STRING .) + PLUS reduce using rule 67 (expression -> STRING .) + MINUS reduce using rule 67 (expression -> STRING .) + CONNECT reduce using rule 67 (expression -> STRING .) + DOT reduce using rule 67 (expression -> STRING .) + POINTER reduce using rule 67 (expression -> STRING .) + DELETE reduce using rule 67 (expression -> STRING .) + DECLARE reduce using rule 67 (expression -> STRING .) + PUBLIC reduce using rule 67 (expression -> STRING .) + PRIVATE reduce using rule 67 (expression -> STRING .) + CONSTANT reduce using rule 67 (expression -> STRING .) + INPUT reduce using rule 67 (expression -> STRING .) + OUTPUT reduce using rule 67 (expression -> STRING .) + _OUTPUT reduce using rule 67 (expression -> STRING .) + IF reduce using rule 67 (expression -> STRING .) + CASE reduce using rule 67 (expression -> STRING .) + FOR reduce using rule 67 (expression -> STRING .) + REPEAT reduce using rule 67 (expression -> STRING .) + WHILE reduce using rule 67 (expression -> STRING .) + PROCEDURE reduce using rule 67 (expression -> STRING .) + CALL reduce using rule 67 (expression -> STRING .) + FUNCTION reduce using rule 67 (expression -> STRING .) + RETURN reduce using rule 67 (expression -> STRING .) + OPENFILE reduce using rule 67 (expression -> STRING .) + READFILE reduce using rule 67 (expression -> STRING .) + WRITEFILE reduce using rule 67 (expression -> STRING .) + CLOSEFILE reduce using rule 67 (expression -> STRING .) + SEEK reduce using rule 67 (expression -> STRING .) + TYPE reduce using rule 67 (expression -> STRING .) + PASS reduce using rule 67 (expression -> STRING .) + IMPORT reduce using rule 67 (expression -> STRING .) + CLASS reduce using rule 67 (expression -> STRING .) + LEFT_SQUARE reduce using rule 67 (expression -> STRING .) + ID reduce using rule 67 (expression -> STRING .) + NOT reduce using rule 67 (expression -> STRING .) + LEFT_PAREN reduce using rule 67 (expression -> STRING .) + DATE reduce using rule 67 (expression -> STRING .) + BOOLEAN reduce using rule 67 (expression -> STRING .) + CHAR reduce using rule 67 (expression -> STRING .) + STRING reduce using rule 67 (expression -> STRING .) + REAL reduce using rule 67 (expression -> STRING .) + INTEGER reduce using rule 67 (expression -> STRING .) + NEW reduce using rule 67 (expression -> STRING .) + $end reduce using rule 67 (expression -> STRING .) + RIGHT_SQUARE reduce using rule 67 (expression -> STRING .) + COMMA reduce using rule 67 (expression -> STRING .) + UNTIL reduce using rule 67 (expression -> STRING .) + ENDWHILE reduce using rule 67 (expression -> STRING .) + ENDTYPE reduce using rule 67 (expression -> STRING .) + ENDCLASS reduce using rule 67 (expression -> STRING .) + ELSE reduce using rule 67 (expression -> STRING .) + ENDIF reduce using rule 67 (expression -> STRING .) + ENDPROCEDURE reduce using rule 67 (expression -> STRING .) + SEMICOLON reduce using rule 67 (expression -> STRING .) + NEXT reduce using rule 67 (expression -> STRING .) + ENDFUNCTION reduce using rule 67 (expression -> STRING .) + THEN reduce using rule 67 (expression -> STRING .) + DO reduce using rule 67 (expression -> STRING .) + RIGHT_PAREN reduce using rule 67 (expression -> STRING .) + OTHERWISE reduce using rule 67 (expression -> STRING .) + TO reduce using rule 67 (expression -> STRING .) + COLON reduce using rule 67 (expression -> STRING .) + STEP reduce using rule 67 (expression -> STRING .) state 44 - (67) expression -> REAL . - - ASSIGN reduce using rule 67 (expression -> REAL .) - OR reduce using rule 67 (expression -> REAL .) - AND reduce using rule 67 (expression -> REAL .) - EQUAL reduce using rule 67 (expression -> REAL .) - NOT_EQUAL reduce using rule 67 (expression -> REAL .) - LESS reduce using rule 67 (expression -> REAL .) - GREATER reduce using rule 67 (expression -> REAL .) - LESS_EQUAL reduce using rule 67 (expression -> REAL .) - GREATER_EQUAL reduce using rule 67 (expression -> REAL .) - MOD reduce using rule 67 (expression -> REAL .) - DIV reduce using rule 67 (expression -> REAL .) - MUL reduce using rule 67 (expression -> REAL .) - N_DIV reduce using rule 67 (expression -> REAL .) - PLUS reduce using rule 67 (expression -> REAL .) - MINUS reduce using rule 67 (expression -> REAL .) - CONNECT reduce using rule 67 (expression -> REAL .) - DOT reduce using rule 67 (expression -> REAL .) - POINTER reduce using rule 67 (expression -> REAL .) - DELETE reduce using rule 67 (expression -> REAL .) - DECLARE reduce using rule 67 (expression -> REAL .) - PUBLIC reduce using rule 67 (expression -> REAL .) - PRIVATE reduce using rule 67 (expression -> REAL .) - CONSTANT reduce using rule 67 (expression -> REAL .) - INPUT reduce using rule 67 (expression -> REAL .) - OUTPUT reduce using rule 67 (expression -> REAL .) - _OUTPUT reduce using rule 67 (expression -> REAL .) - IF reduce using rule 67 (expression -> REAL .) - CASE reduce using rule 67 (expression -> REAL .) - FOR reduce using rule 67 (expression -> REAL .) - REPEAT reduce using rule 67 (expression -> REAL .) - WHILE reduce using rule 67 (expression -> REAL .) - PROCEDURE reduce using rule 67 (expression -> REAL .) - CALL reduce using rule 67 (expression -> REAL .) - FUNCTION reduce using rule 67 (expression -> REAL .) - RETURN reduce using rule 67 (expression -> REAL .) - OPENFILE reduce using rule 67 (expression -> REAL .) - READFILE reduce using rule 67 (expression -> REAL .) - WRITEFILE reduce using rule 67 (expression -> REAL .) - CLOSEFILE reduce using rule 67 (expression -> REAL .) - SEEK reduce using rule 67 (expression -> REAL .) - TYPE reduce using rule 67 (expression -> REAL .) - PASS reduce using rule 67 (expression -> REAL .) - IMPORT reduce using rule 67 (expression -> REAL .) - CLASS reduce using rule 67 (expression -> REAL .) - LEFT_SQUARE reduce using rule 67 (expression -> REAL .) - ID reduce using rule 67 (expression -> REAL .) - NOT reduce using rule 67 (expression -> REAL .) - LEFT_PAREN reduce using rule 67 (expression -> REAL .) - DATE reduce using rule 67 (expression -> REAL .) - BOOLEAN reduce using rule 67 (expression -> REAL .) - CHAR reduce using rule 67 (expression -> REAL .) - STRING reduce using rule 67 (expression -> REAL .) - REAL reduce using rule 67 (expression -> REAL .) - INTEGER reduce using rule 67 (expression -> REAL .) - NEW reduce using rule 67 (expression -> REAL .) - $end reduce using rule 67 (expression -> REAL .) - RIGHT_SQUARE reduce using rule 67 (expression -> REAL .) - COMMA reduce using rule 67 (expression -> REAL .) - UNTIL reduce using rule 67 (expression -> REAL .) - ENDWHILE reduce using rule 67 (expression -> REAL .) - ENDTYPE reduce using rule 67 (expression -> REAL .) - ENDCLASS reduce using rule 67 (expression -> REAL .) - ELSE reduce using rule 67 (expression -> REAL .) - ENDIF reduce using rule 67 (expression -> REAL .) - ENDPROCEDURE reduce using rule 67 (expression -> REAL .) - SEMICOLON reduce using rule 67 (expression -> REAL .) - NEXT reduce using rule 67 (expression -> REAL .) - ENDFUNCTION reduce using rule 67 (expression -> REAL .) - THEN reduce using rule 67 (expression -> REAL .) - DO reduce using rule 67 (expression -> REAL .) - RIGHT_PAREN reduce using rule 67 (expression -> REAL .) - OTHERWISE reduce using rule 67 (expression -> REAL .) - TO reduce using rule 67 (expression -> REAL .) - COLON reduce using rule 67 (expression -> REAL .) - STEP reduce using rule 67 (expression -> REAL .) + (68) expression -> REAL . + + ASSIGN reduce using rule 68 (expression -> REAL .) + OR reduce using rule 68 (expression -> REAL .) + AND reduce using rule 68 (expression -> REAL .) + EQUAL reduce using rule 68 (expression -> REAL .) + NOT_EQUAL reduce using rule 68 (expression -> REAL .) + LESS reduce using rule 68 (expression -> REAL .) + GREATER reduce using rule 68 (expression -> REAL .) + LESS_EQUAL reduce using rule 68 (expression -> REAL .) + GREATER_EQUAL reduce using rule 68 (expression -> REAL .) + MOD reduce using rule 68 (expression -> REAL .) + DIV reduce using rule 68 (expression -> REAL .) + MUL reduce using rule 68 (expression -> REAL .) + N_DIV reduce using rule 68 (expression -> REAL .) + PLUS reduce using rule 68 (expression -> REAL .) + MINUS reduce using rule 68 (expression -> REAL .) + CONNECT reduce using rule 68 (expression -> REAL .) + DOT reduce using rule 68 (expression -> REAL .) + POINTER reduce using rule 68 (expression -> REAL .) + DELETE reduce using rule 68 (expression -> REAL .) + DECLARE reduce using rule 68 (expression -> REAL .) + PUBLIC reduce using rule 68 (expression -> REAL .) + PRIVATE reduce using rule 68 (expression -> REAL .) + CONSTANT reduce using rule 68 (expression -> REAL .) + INPUT reduce using rule 68 (expression -> REAL .) + OUTPUT reduce using rule 68 (expression -> REAL .) + _OUTPUT reduce using rule 68 (expression -> REAL .) + IF reduce using rule 68 (expression -> REAL .) + CASE reduce using rule 68 (expression -> REAL .) + FOR reduce using rule 68 (expression -> REAL .) + REPEAT reduce using rule 68 (expression -> REAL .) + WHILE reduce using rule 68 (expression -> REAL .) + PROCEDURE reduce using rule 68 (expression -> REAL .) + CALL reduce using rule 68 (expression -> REAL .) + FUNCTION reduce using rule 68 (expression -> REAL .) + RETURN reduce using rule 68 (expression -> REAL .) + OPENFILE reduce using rule 68 (expression -> REAL .) + READFILE reduce using rule 68 (expression -> REAL .) + WRITEFILE reduce using rule 68 (expression -> REAL .) + CLOSEFILE reduce using rule 68 (expression -> REAL .) + SEEK reduce using rule 68 (expression -> REAL .) + TYPE reduce using rule 68 (expression -> REAL .) + PASS reduce using rule 68 (expression -> REAL .) + IMPORT reduce using rule 68 (expression -> REAL .) + CLASS reduce using rule 68 (expression -> REAL .) + LEFT_SQUARE reduce using rule 68 (expression -> REAL .) + ID reduce using rule 68 (expression -> REAL .) + NOT reduce using rule 68 (expression -> REAL .) + LEFT_PAREN reduce using rule 68 (expression -> REAL .) + DATE reduce using rule 68 (expression -> REAL .) + BOOLEAN reduce using rule 68 (expression -> REAL .) + CHAR reduce using rule 68 (expression -> REAL .) + STRING reduce using rule 68 (expression -> REAL .) + REAL reduce using rule 68 (expression -> REAL .) + INTEGER reduce using rule 68 (expression -> REAL .) + NEW reduce using rule 68 (expression -> REAL .) + $end reduce using rule 68 (expression -> REAL .) + RIGHT_SQUARE reduce using rule 68 (expression -> REAL .) + COMMA reduce using rule 68 (expression -> REAL .) + UNTIL reduce using rule 68 (expression -> REAL .) + ENDWHILE reduce using rule 68 (expression -> REAL .) + ENDTYPE reduce using rule 68 (expression -> REAL .) + ENDCLASS reduce using rule 68 (expression -> REAL .) + ELSE reduce using rule 68 (expression -> REAL .) + ENDIF reduce using rule 68 (expression -> REAL .) + ENDPROCEDURE reduce using rule 68 (expression -> REAL .) + SEMICOLON reduce using rule 68 (expression -> REAL .) + NEXT reduce using rule 68 (expression -> REAL .) + ENDFUNCTION reduce using rule 68 (expression -> REAL .) + THEN reduce using rule 68 (expression -> REAL .) + DO reduce using rule 68 (expression -> REAL .) + RIGHT_PAREN reduce using rule 68 (expression -> REAL .) + OTHERWISE reduce using rule 68 (expression -> REAL .) + TO reduce using rule 68 (expression -> REAL .) + COLON reduce using rule 68 (expression -> REAL .) + STEP reduce using rule 68 (expression -> REAL .) state 45 - (68) expression -> INTEGER . - - ASSIGN reduce using rule 68 (expression -> INTEGER .) - OR reduce using rule 68 (expression -> INTEGER .) - AND reduce using rule 68 (expression -> INTEGER .) - EQUAL reduce using rule 68 (expression -> INTEGER .) - NOT_EQUAL reduce using rule 68 (expression -> INTEGER .) - LESS reduce using rule 68 (expression -> INTEGER .) - GREATER reduce using rule 68 (expression -> INTEGER .) - LESS_EQUAL reduce using rule 68 (expression -> INTEGER .) - GREATER_EQUAL reduce using rule 68 (expression -> INTEGER .) - MOD reduce using rule 68 (expression -> INTEGER .) - DIV reduce using rule 68 (expression -> INTEGER .) - MUL reduce using rule 68 (expression -> INTEGER .) - N_DIV reduce using rule 68 (expression -> INTEGER .) - PLUS reduce using rule 68 (expression -> INTEGER .) - MINUS reduce using rule 68 (expression -> INTEGER .) - CONNECT reduce using rule 68 (expression -> INTEGER .) - DOT reduce using rule 68 (expression -> INTEGER .) - POINTER reduce using rule 68 (expression -> INTEGER .) - DELETE reduce using rule 68 (expression -> INTEGER .) - DECLARE reduce using rule 68 (expression -> INTEGER .) - PUBLIC reduce using rule 68 (expression -> INTEGER .) - PRIVATE reduce using rule 68 (expression -> INTEGER .) - CONSTANT reduce using rule 68 (expression -> INTEGER .) - INPUT reduce using rule 68 (expression -> INTEGER .) - OUTPUT reduce using rule 68 (expression -> INTEGER .) - _OUTPUT reduce using rule 68 (expression -> INTEGER .) - IF reduce using rule 68 (expression -> INTEGER .) - CASE reduce using rule 68 (expression -> INTEGER .) - FOR reduce using rule 68 (expression -> INTEGER .) - REPEAT reduce using rule 68 (expression -> INTEGER .) - WHILE reduce using rule 68 (expression -> INTEGER .) - PROCEDURE reduce using rule 68 (expression -> INTEGER .) - CALL reduce using rule 68 (expression -> INTEGER .) - FUNCTION reduce using rule 68 (expression -> INTEGER .) - RETURN reduce using rule 68 (expression -> INTEGER .) - OPENFILE reduce using rule 68 (expression -> INTEGER .) - READFILE reduce using rule 68 (expression -> INTEGER .) - WRITEFILE reduce using rule 68 (expression -> INTEGER .) - CLOSEFILE reduce using rule 68 (expression -> INTEGER .) - SEEK reduce using rule 68 (expression -> INTEGER .) - TYPE reduce using rule 68 (expression -> INTEGER .) - PASS reduce using rule 68 (expression -> INTEGER .) - IMPORT reduce using rule 68 (expression -> INTEGER .) - CLASS reduce using rule 68 (expression -> INTEGER .) - LEFT_SQUARE reduce using rule 68 (expression -> INTEGER .) - ID reduce using rule 68 (expression -> INTEGER .) - NOT reduce using rule 68 (expression -> INTEGER .) - LEFT_PAREN reduce using rule 68 (expression -> INTEGER .) - DATE reduce using rule 68 (expression -> INTEGER .) - BOOLEAN reduce using rule 68 (expression -> INTEGER .) - CHAR reduce using rule 68 (expression -> INTEGER .) - STRING reduce using rule 68 (expression -> INTEGER .) - REAL reduce using rule 68 (expression -> INTEGER .) - INTEGER reduce using rule 68 (expression -> INTEGER .) - NEW reduce using rule 68 (expression -> INTEGER .) - $end reduce using rule 68 (expression -> INTEGER .) - RIGHT_SQUARE reduce using rule 68 (expression -> INTEGER .) - COMMA reduce using rule 68 (expression -> INTEGER .) - UNTIL reduce using rule 68 (expression -> INTEGER .) - ENDWHILE reduce using rule 68 (expression -> INTEGER .) - ENDTYPE reduce using rule 68 (expression -> INTEGER .) - ENDCLASS reduce using rule 68 (expression -> INTEGER .) - ELSE reduce using rule 68 (expression -> INTEGER .) - ENDIF reduce using rule 68 (expression -> INTEGER .) - ENDPROCEDURE reduce using rule 68 (expression -> INTEGER .) - SEMICOLON reduce using rule 68 (expression -> INTEGER .) - NEXT reduce using rule 68 (expression -> INTEGER .) - ENDFUNCTION reduce using rule 68 (expression -> INTEGER .) - THEN reduce using rule 68 (expression -> INTEGER .) - DO reduce using rule 68 (expression -> INTEGER .) - RIGHT_PAREN reduce using rule 68 (expression -> INTEGER .) - OTHERWISE reduce using rule 68 (expression -> INTEGER .) - TO reduce using rule 68 (expression -> INTEGER .) - COLON reduce using rule 68 (expression -> INTEGER .) - STEP reduce using rule 68 (expression -> INTEGER .) + (69) expression -> INTEGER . + + ASSIGN reduce using rule 69 (expression -> INTEGER .) + OR reduce using rule 69 (expression -> INTEGER .) + AND reduce using rule 69 (expression -> INTEGER .) + EQUAL reduce using rule 69 (expression -> INTEGER .) + NOT_EQUAL reduce using rule 69 (expression -> INTEGER .) + LESS reduce using rule 69 (expression -> INTEGER .) + GREATER reduce using rule 69 (expression -> INTEGER .) + LESS_EQUAL reduce using rule 69 (expression -> INTEGER .) + GREATER_EQUAL reduce using rule 69 (expression -> INTEGER .) + MOD reduce using rule 69 (expression -> INTEGER .) + DIV reduce using rule 69 (expression -> INTEGER .) + MUL reduce using rule 69 (expression -> INTEGER .) + N_DIV reduce using rule 69 (expression -> INTEGER .) + PLUS reduce using rule 69 (expression -> INTEGER .) + MINUS reduce using rule 69 (expression -> INTEGER .) + CONNECT reduce using rule 69 (expression -> INTEGER .) + DOT reduce using rule 69 (expression -> INTEGER .) + POINTER reduce using rule 69 (expression -> INTEGER .) + DELETE reduce using rule 69 (expression -> INTEGER .) + DECLARE reduce using rule 69 (expression -> INTEGER .) + PUBLIC reduce using rule 69 (expression -> INTEGER .) + PRIVATE reduce using rule 69 (expression -> INTEGER .) + CONSTANT reduce using rule 69 (expression -> INTEGER .) + INPUT reduce using rule 69 (expression -> INTEGER .) + OUTPUT reduce using rule 69 (expression -> INTEGER .) + _OUTPUT reduce using rule 69 (expression -> INTEGER .) + IF reduce using rule 69 (expression -> INTEGER .) + CASE reduce using rule 69 (expression -> INTEGER .) + FOR reduce using rule 69 (expression -> INTEGER .) + REPEAT reduce using rule 69 (expression -> INTEGER .) + WHILE reduce using rule 69 (expression -> INTEGER .) + PROCEDURE reduce using rule 69 (expression -> INTEGER .) + CALL reduce using rule 69 (expression -> INTEGER .) + FUNCTION reduce using rule 69 (expression -> INTEGER .) + RETURN reduce using rule 69 (expression -> INTEGER .) + OPENFILE reduce using rule 69 (expression -> INTEGER .) + READFILE reduce using rule 69 (expression -> INTEGER .) + WRITEFILE reduce using rule 69 (expression -> INTEGER .) + CLOSEFILE reduce using rule 69 (expression -> INTEGER .) + SEEK reduce using rule 69 (expression -> INTEGER .) + TYPE reduce using rule 69 (expression -> INTEGER .) + PASS reduce using rule 69 (expression -> INTEGER .) + IMPORT reduce using rule 69 (expression -> INTEGER .) + CLASS reduce using rule 69 (expression -> INTEGER .) + LEFT_SQUARE reduce using rule 69 (expression -> INTEGER .) + ID reduce using rule 69 (expression -> INTEGER .) + NOT reduce using rule 69 (expression -> INTEGER .) + LEFT_PAREN reduce using rule 69 (expression -> INTEGER .) + DATE reduce using rule 69 (expression -> INTEGER .) + BOOLEAN reduce using rule 69 (expression -> INTEGER .) + CHAR reduce using rule 69 (expression -> INTEGER .) + STRING reduce using rule 69 (expression -> INTEGER .) + REAL reduce using rule 69 (expression -> INTEGER .) + INTEGER reduce using rule 69 (expression -> INTEGER .) + NEW reduce using rule 69 (expression -> INTEGER .) + $end reduce using rule 69 (expression -> INTEGER .) + RIGHT_SQUARE reduce using rule 69 (expression -> INTEGER .) + COMMA reduce using rule 69 (expression -> INTEGER .) + UNTIL reduce using rule 69 (expression -> INTEGER .) + ENDWHILE reduce using rule 69 (expression -> INTEGER .) + ENDTYPE reduce using rule 69 (expression -> INTEGER .) + ENDCLASS reduce using rule 69 (expression -> INTEGER .) + ELSE reduce using rule 69 (expression -> INTEGER .) + ENDIF reduce using rule 69 (expression -> INTEGER .) + ENDPROCEDURE reduce using rule 69 (expression -> INTEGER .) + SEMICOLON reduce using rule 69 (expression -> INTEGER .) + NEXT reduce using rule 69 (expression -> INTEGER .) + ENDFUNCTION reduce using rule 69 (expression -> INTEGER .) + THEN reduce using rule 69 (expression -> INTEGER .) + DO reduce using rule 69 (expression -> INTEGER .) + RIGHT_PAREN reduce using rule 69 (expression -> INTEGER .) + OTHERWISE reduce using rule 69 (expression -> INTEGER .) + TO reduce using rule 69 (expression -> INTEGER .) + COLON reduce using rule 69 (expression -> INTEGER .) + STEP reduce using rule 69 (expression -> INTEGER .) state 46 @@ -2935,47 +2940,47 @@ state 47 state 48 - (43) expression -> ID LEFT_SQUARE . indexes RIGHT_SQUARE - (15) indexes -> . indexes COMMA expression - (16) indexes -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (44) expression -> ID LEFT_SQUARE . indexes RIGHT_SQUARE + (16) indexes -> . indexes COMMA expression + (17) indexes -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2999,48 +3004,48 @@ state 48 state 49 - (114) expression -> ID LEFT_PAREN . parameters RIGHT_PAREN - (117) expression -> ID LEFT_PAREN . RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (115) expression -> ID LEFT_PAREN . parameters RIGHT_PAREN + (118) expression -> ID LEFT_PAREN . RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN RIGHT_PAREN shift and go to state 112 LEFT_SQUARE shift and go to state 10 @@ -3066,7 +3071,7 @@ state 49 state 50 (4) statement -> DECLARE ID . COLON ID - (8) statement -> DECLARE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) statement -> DECLARE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID COLON shift and go to state 114 @@ -3074,17 +3079,17 @@ state 50 state 51 (5) statement -> PUBLIC ID . COLON ID - (9) statement -> PUBLIC ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> PUBLIC ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID COLON shift and go to state 115 state 52 - (86) statement -> PUBLIC PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> PUBLIC PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> PUBLIC PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> PUBLIC PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> PUBLIC PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> PUBLIC PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> PUBLIC PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PUBLIC PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE ID shift and go to state 116 NEW shift and go to state 117 @@ -3092,12 +3097,12 @@ state 52 state 53 - (100) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (101) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION ID shift and go to state 118 @@ -3105,17 +3110,17 @@ state 53 state 54 (6) statement -> PRIVATE ID . COLON ID - (10) statement -> PRIVATE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> PRIVATE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID COLON shift and go to state 119 state 55 - (90) statement -> PRIVATE PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> PRIVATE PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> PRIVATE PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> PRIVATE PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> PRIVATE PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> PRIVATE PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> PRIVATE PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PRIVATE PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE ID shift and go to state 120 NEW shift and go to state 121 @@ -3123,12 +3128,12 @@ state 55 state 56 - (104) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (105) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION ID shift and go to state 122 @@ -3136,51 +3141,53 @@ state 56 state 57 (7) statement -> CONSTANT ID . EQUAL expression + (8) statement -> CONSTANT ID . ASSIGN expression EQUAL shift and go to state 123 + ASSIGN shift and go to state 124 state 58 - (14) statement -> expression ASSIGN . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (15) statement -> expression ASSIGN . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3199,49 +3206,49 @@ state 58 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 124 + expression shift and go to state 125 state 59 - (44) expression -> expression OR . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (45) expression -> expression OR . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3260,49 +3267,49 @@ state 59 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 125 + expression shift and go to state 126 state 60 - (45) expression -> expression AND . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (46) expression -> expression AND . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3321,49 +3328,49 @@ state 60 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 126 + expression shift and go to state 127 state 61 - (47) expression -> expression EQUAL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (48) expression -> expression EQUAL . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3382,49 +3389,49 @@ state 61 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 127 + expression shift and go to state 128 state 62 - (48) expression -> expression NOT_EQUAL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (49) expression -> expression NOT_EQUAL . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3443,49 +3450,49 @@ state 62 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 128 + expression shift and go to state 129 state 63 - (49) expression -> expression LESS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (50) expression -> expression LESS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3504,49 +3511,49 @@ state 63 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 129 + expression shift and go to state 130 state 64 - (50) expression -> expression GREATER . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (51) expression -> expression GREATER . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3565,49 +3572,49 @@ state 64 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 130 + expression shift and go to state 131 state 65 - (51) expression -> expression LESS_EQUAL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (52) expression -> expression LESS_EQUAL . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3626,49 +3633,49 @@ state 65 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 131 + expression shift and go to state 132 state 66 - (52) expression -> expression GREATER_EQUAL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (53) expression -> expression GREATER_EQUAL . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3687,49 +3694,49 @@ state 66 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 132 + expression shift and go to state 133 state 67 - (53) expression -> expression MOD . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (54) expression -> expression MOD . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3748,49 +3755,49 @@ state 67 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 133 + expression shift and go to state 134 state 68 - (54) expression -> expression DIV . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (55) expression -> expression DIV . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3809,49 +3816,49 @@ state 68 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 134 + expression shift and go to state 135 state 69 - (55) expression -> expression MUL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (56) expression -> expression MUL . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3870,49 +3877,49 @@ state 69 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 135 + expression shift and go to state 136 state 70 - (56) expression -> expression N_DIV . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (57) expression -> expression N_DIV . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3931,49 +3938,49 @@ state 70 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 136 + expression shift and go to state 137 state 71 - (59) expression -> expression PLUS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (60) expression -> expression PLUS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3992,49 +3999,49 @@ state 71 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 137 + expression shift and go to state 138 state 72 - (60) expression -> expression MINUS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (61) expression -> expression MINUS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4053,49 +4060,49 @@ state 72 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 138 + expression shift and go to state 139 state 73 - (61) expression -> expression CONNECT . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (62) expression -> expression CONNECT . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4114,49 +4121,49 @@ state 73 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 139 + expression shift and go to state 140 state 74 - (129) expression -> expression DOT . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (130) expression -> expression DOT . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4175,202 +4182,202 @@ state 74 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 140 + expression shift and go to state 141 state 75 - (134) expression -> expression POINTER . - - ASSIGN reduce using rule 134 (expression -> expression POINTER .) - OR reduce using rule 134 (expression -> expression POINTER .) - AND reduce using rule 134 (expression -> expression POINTER .) - EQUAL reduce using rule 134 (expression -> expression POINTER .) - NOT_EQUAL reduce using rule 134 (expression -> expression POINTER .) - LESS reduce using rule 134 (expression -> expression POINTER .) - GREATER reduce using rule 134 (expression -> expression POINTER .) - LESS_EQUAL reduce using rule 134 (expression -> expression POINTER .) - GREATER_EQUAL reduce using rule 134 (expression -> expression POINTER .) - MOD reduce using rule 134 (expression -> expression POINTER .) - DIV reduce using rule 134 (expression -> expression POINTER .) - MUL reduce using rule 134 (expression -> expression POINTER .) - N_DIV reduce using rule 134 (expression -> expression POINTER .) - PLUS reduce using rule 134 (expression -> expression POINTER .) - MINUS reduce using rule 134 (expression -> expression POINTER .) - CONNECT reduce using rule 134 (expression -> expression POINTER .) - DOT reduce using rule 134 (expression -> expression POINTER .) - POINTER reduce using rule 134 (expression -> expression POINTER .) - DELETE reduce using rule 134 (expression -> expression POINTER .) - DECLARE reduce using rule 134 (expression -> expression POINTER .) - PUBLIC reduce using rule 134 (expression -> expression POINTER .) - PRIVATE reduce using rule 134 (expression -> expression POINTER .) - CONSTANT reduce using rule 134 (expression -> expression POINTER .) - INPUT reduce using rule 134 (expression -> expression POINTER .) - OUTPUT reduce using rule 134 (expression -> expression POINTER .) - _OUTPUT reduce using rule 134 (expression -> expression POINTER .) - IF reduce using rule 134 (expression -> expression POINTER .) - CASE reduce using rule 134 (expression -> expression POINTER .) - FOR reduce using rule 134 (expression -> expression POINTER .) - REPEAT reduce using rule 134 (expression -> expression POINTER .) - WHILE reduce using rule 134 (expression -> expression POINTER .) - PROCEDURE reduce using rule 134 (expression -> expression POINTER .) - CALL reduce using rule 134 (expression -> expression POINTER .) - FUNCTION reduce using rule 134 (expression -> expression POINTER .) - RETURN reduce using rule 134 (expression -> expression POINTER .) - OPENFILE reduce using rule 134 (expression -> expression POINTER .) - READFILE reduce using rule 134 (expression -> expression POINTER .) - WRITEFILE reduce using rule 134 (expression -> expression POINTER .) - CLOSEFILE reduce using rule 134 (expression -> expression POINTER .) - SEEK reduce using rule 134 (expression -> expression POINTER .) - TYPE reduce using rule 134 (expression -> expression POINTER .) - PASS reduce using rule 134 (expression -> expression POINTER .) - IMPORT reduce using rule 134 (expression -> expression POINTER .) - CLASS reduce using rule 134 (expression -> expression POINTER .) - LEFT_SQUARE reduce using rule 134 (expression -> expression POINTER .) - ID reduce using rule 134 (expression -> expression POINTER .) - NOT reduce using rule 134 (expression -> expression POINTER .) - LEFT_PAREN reduce using rule 134 (expression -> expression POINTER .) - DATE reduce using rule 134 (expression -> expression POINTER .) - BOOLEAN reduce using rule 134 (expression -> expression POINTER .) - CHAR reduce using rule 134 (expression -> expression POINTER .) - STRING reduce using rule 134 (expression -> expression POINTER .) - REAL reduce using rule 134 (expression -> expression POINTER .) - INTEGER reduce using rule 134 (expression -> expression POINTER .) - NEW reduce using rule 134 (expression -> expression POINTER .) - $end reduce using rule 134 (expression -> expression POINTER .) - RIGHT_SQUARE reduce using rule 134 (expression -> expression POINTER .) - COMMA reduce using rule 134 (expression -> expression POINTER .) - UNTIL reduce using rule 134 (expression -> expression POINTER .) - ENDWHILE reduce using rule 134 (expression -> expression POINTER .) - ENDTYPE reduce using rule 134 (expression -> expression POINTER .) - ENDCLASS reduce using rule 134 (expression -> expression POINTER .) - ELSE reduce using rule 134 (expression -> expression POINTER .) - ENDIF reduce using rule 134 (expression -> expression POINTER .) - ENDPROCEDURE reduce using rule 134 (expression -> expression POINTER .) - SEMICOLON reduce using rule 134 (expression -> expression POINTER .) - NEXT reduce using rule 134 (expression -> expression POINTER .) - ENDFUNCTION reduce using rule 134 (expression -> expression POINTER .) - THEN reduce using rule 134 (expression -> expression POINTER .) - RIGHT_PAREN reduce using rule 134 (expression -> expression POINTER .) - DO reduce using rule 134 (expression -> expression POINTER .) - OTHERWISE reduce using rule 134 (expression -> expression POINTER .) - TO reduce using rule 134 (expression -> expression POINTER .) - COLON reduce using rule 134 (expression -> expression POINTER .) - STEP reduce using rule 134 (expression -> expression POINTER .) + (135) expression -> expression POINTER . + + ASSIGN reduce using rule 135 (expression -> expression POINTER .) + OR reduce using rule 135 (expression -> expression POINTER .) + AND reduce using rule 135 (expression -> expression POINTER .) + EQUAL reduce using rule 135 (expression -> expression POINTER .) + NOT_EQUAL reduce using rule 135 (expression -> expression POINTER .) + LESS reduce using rule 135 (expression -> expression POINTER .) + GREATER reduce using rule 135 (expression -> expression POINTER .) + LESS_EQUAL reduce using rule 135 (expression -> expression POINTER .) + GREATER_EQUAL reduce using rule 135 (expression -> expression POINTER .) + MOD reduce using rule 135 (expression -> expression POINTER .) + DIV reduce using rule 135 (expression -> expression POINTER .) + MUL reduce using rule 135 (expression -> expression POINTER .) + N_DIV reduce using rule 135 (expression -> expression POINTER .) + PLUS reduce using rule 135 (expression -> expression POINTER .) + MINUS reduce using rule 135 (expression -> expression POINTER .) + CONNECT reduce using rule 135 (expression -> expression POINTER .) + DOT reduce using rule 135 (expression -> expression POINTER .) + POINTER reduce using rule 135 (expression -> expression POINTER .) + DELETE reduce using rule 135 (expression -> expression POINTER .) + DECLARE reduce using rule 135 (expression -> expression POINTER .) + PUBLIC reduce using rule 135 (expression -> expression POINTER .) + PRIVATE reduce using rule 135 (expression -> expression POINTER .) + CONSTANT reduce using rule 135 (expression -> expression POINTER .) + INPUT reduce using rule 135 (expression -> expression POINTER .) + OUTPUT reduce using rule 135 (expression -> expression POINTER .) + _OUTPUT reduce using rule 135 (expression -> expression POINTER .) + IF reduce using rule 135 (expression -> expression POINTER .) + CASE reduce using rule 135 (expression -> expression POINTER .) + FOR reduce using rule 135 (expression -> expression POINTER .) + REPEAT reduce using rule 135 (expression -> expression POINTER .) + WHILE reduce using rule 135 (expression -> expression POINTER .) + PROCEDURE reduce using rule 135 (expression -> expression POINTER .) + CALL reduce using rule 135 (expression -> expression POINTER .) + FUNCTION reduce using rule 135 (expression -> expression POINTER .) + RETURN reduce using rule 135 (expression -> expression POINTER .) + OPENFILE reduce using rule 135 (expression -> expression POINTER .) + READFILE reduce using rule 135 (expression -> expression POINTER .) + WRITEFILE reduce using rule 135 (expression -> expression POINTER .) + CLOSEFILE reduce using rule 135 (expression -> expression POINTER .) + SEEK reduce using rule 135 (expression -> expression POINTER .) + TYPE reduce using rule 135 (expression -> expression POINTER .) + PASS reduce using rule 135 (expression -> expression POINTER .) + IMPORT reduce using rule 135 (expression -> expression POINTER .) + CLASS reduce using rule 135 (expression -> expression POINTER .) + LEFT_SQUARE reduce using rule 135 (expression -> expression POINTER .) + ID reduce using rule 135 (expression -> expression POINTER .) + NOT reduce using rule 135 (expression -> expression POINTER .) + LEFT_PAREN reduce using rule 135 (expression -> expression POINTER .) + DATE reduce using rule 135 (expression -> expression POINTER .) + BOOLEAN reduce using rule 135 (expression -> expression POINTER .) + CHAR reduce using rule 135 (expression -> expression POINTER .) + STRING reduce using rule 135 (expression -> expression POINTER .) + REAL reduce using rule 135 (expression -> expression POINTER .) + INTEGER reduce using rule 135 (expression -> expression POINTER .) + NEW reduce using rule 135 (expression -> expression POINTER .) + $end reduce using rule 135 (expression -> expression POINTER .) + RIGHT_SQUARE reduce using rule 135 (expression -> expression POINTER .) + COMMA reduce using rule 135 (expression -> expression POINTER .) + UNTIL reduce using rule 135 (expression -> expression POINTER .) + ENDWHILE reduce using rule 135 (expression -> expression POINTER .) + ENDTYPE reduce using rule 135 (expression -> expression POINTER .) + ENDCLASS reduce using rule 135 (expression -> expression POINTER .) + ELSE reduce using rule 135 (expression -> expression POINTER .) + ENDIF reduce using rule 135 (expression -> expression POINTER .) + ENDPROCEDURE reduce using rule 135 (expression -> expression POINTER .) + SEMICOLON reduce using rule 135 (expression -> expression POINTER .) + NEXT reduce using rule 135 (expression -> expression POINTER .) + ENDFUNCTION reduce using rule 135 (expression -> expression POINTER .) + THEN reduce using rule 135 (expression -> expression POINTER .) + RIGHT_PAREN reduce using rule 135 (expression -> expression POINTER .) + DO reduce using rule 135 (expression -> expression POINTER .) + OTHERWISE reduce using rule 135 (expression -> expression POINTER .) + TO reduce using rule 135 (expression -> expression POINTER .) + COLON reduce using rule 135 (expression -> expression POINTER .) + STEP reduce using rule 135 (expression -> expression POINTER .) state 76 - (17) expression -> LEFT_SQUARE array_items . RIGHT_SQUARE - (19) array_items -> array_items . COMMA expression + (18) expression -> LEFT_SQUARE array_items . RIGHT_SQUARE + (20) array_items -> array_items . COMMA expression - RIGHT_SQUARE shift and go to state 141 - COMMA shift and go to state 142 + RIGHT_SQUARE shift and go to state 142 + COMMA shift and go to state 143 state 77 - (18) expression -> LEFT_SQUARE RIGHT_SQUARE . - - ASSIGN reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - OR reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - AND reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - EQUAL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - NOT_EQUAL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - LESS reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - GREATER reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - LESS_EQUAL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - GREATER_EQUAL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - MOD reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - DIV reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - MUL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - N_DIV reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - PLUS reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - MINUS reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CONNECT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - DOT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - POINTER reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - DELETE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - DECLARE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - PUBLIC reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - PRIVATE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CONSTANT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - INPUT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - OUTPUT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - _OUTPUT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - IF reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CASE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - FOR reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - REPEAT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - WHILE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - PROCEDURE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CALL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - FUNCTION reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - RETURN reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - OPENFILE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - READFILE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - WRITEFILE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CLOSEFILE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - SEEK reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - TYPE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - PASS reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - IMPORT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CLASS reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - LEFT_SQUARE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ID reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - NOT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - LEFT_PAREN reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - DATE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - BOOLEAN reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - CHAR reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - STRING reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - REAL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - INTEGER reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - NEW reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - $end reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - RIGHT_SQUARE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - COMMA reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - UNTIL reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ENDWHILE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ENDTYPE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ENDCLASS reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ELSE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ENDIF reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ENDPROCEDURE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - SEMICOLON reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - NEXT reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - ENDFUNCTION reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - THEN reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - DO reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - RIGHT_PAREN reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - OTHERWISE reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - TO reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - COLON reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) - STEP reduce using rule 18 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + (19) expression -> LEFT_SQUARE RIGHT_SQUARE . + + ASSIGN reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OR reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + AND reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + EQUAL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NOT_EQUAL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LESS reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + GREATER reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LESS_EQUAL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + GREATER_EQUAL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + MOD reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DIV reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + MUL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + N_DIV reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PLUS reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + MINUS reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CONNECT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DOT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + POINTER reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DELETE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DECLARE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PUBLIC reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PRIVATE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CONSTANT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + INPUT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OUTPUT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + _OUTPUT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + IF reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CASE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + FOR reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + REPEAT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + WHILE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PROCEDURE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CALL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + FUNCTION reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + RETURN reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OPENFILE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + READFILE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + WRITEFILE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CLOSEFILE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + SEEK reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + TYPE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PASS reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + IMPORT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CLASS reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ID reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NOT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DATE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + BOOLEAN reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CHAR reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + STRING reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + REAL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + INTEGER reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NEW reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + $end reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + RIGHT_SQUARE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + COMMA reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + UNTIL reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDWHILE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDTYPE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDCLASS reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ELSE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDIF reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + SEMICOLON reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NEXT reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + THEN reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DO reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + RIGHT_PAREN reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OTHERWISE reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + TO reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + COLON reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + STEP reduce using rule 19 (expression -> LEFT_SQUARE RIGHT_SQUARE .) state 78 - (20) array_items -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_SQUARE reduce using rule 20 (array_items -> expression .) - COMMA reduce using rule 20 (array_items -> expression .) + (21) array_items -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 21 (array_items -> expression .) + COMMA reduce using rule 21 (array_items -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -4392,78 +4399,78 @@ state 78 state 79 - (21) statement -> INPUT expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (22) statement -> INPUT expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 21 (statement -> INPUT expression .) - DECLARE reduce using rule 21 (statement -> INPUT expression .) - PUBLIC reduce using rule 21 (statement -> INPUT expression .) - PRIVATE reduce using rule 21 (statement -> INPUT expression .) - CONSTANT reduce using rule 21 (statement -> INPUT expression .) - INPUT reduce using rule 21 (statement -> INPUT expression .) - OUTPUT reduce using rule 21 (statement -> INPUT expression .) - _OUTPUT reduce using rule 21 (statement -> INPUT expression .) - IF reduce using rule 21 (statement -> INPUT expression .) - CASE reduce using rule 21 (statement -> INPUT expression .) - FOR reduce using rule 21 (statement -> INPUT expression .) - REPEAT reduce using rule 21 (statement -> INPUT expression .) - WHILE reduce using rule 21 (statement -> INPUT expression .) - PROCEDURE reduce using rule 21 (statement -> INPUT expression .) - CALL reduce using rule 21 (statement -> INPUT expression .) - FUNCTION reduce using rule 21 (statement -> INPUT expression .) - RETURN reduce using rule 21 (statement -> INPUT expression .) - OPENFILE reduce using rule 21 (statement -> INPUT expression .) - READFILE reduce using rule 21 (statement -> INPUT expression .) - WRITEFILE reduce using rule 21 (statement -> INPUT expression .) - CLOSEFILE reduce using rule 21 (statement -> INPUT expression .) - SEEK reduce using rule 21 (statement -> INPUT expression .) - TYPE reduce using rule 21 (statement -> INPUT expression .) - PASS reduce using rule 21 (statement -> INPUT expression .) - IMPORT reduce using rule 21 (statement -> INPUT expression .) - CLASS reduce using rule 21 (statement -> INPUT expression .) - LEFT_SQUARE reduce using rule 21 (statement -> INPUT expression .) - ID reduce using rule 21 (statement -> INPUT expression .) - NOT reduce using rule 21 (statement -> INPUT expression .) - LEFT_PAREN reduce using rule 21 (statement -> INPUT expression .) - DATE reduce using rule 21 (statement -> INPUT expression .) - BOOLEAN reduce using rule 21 (statement -> INPUT expression .) - CHAR reduce using rule 21 (statement -> INPUT expression .) - STRING reduce using rule 21 (statement -> INPUT expression .) - REAL reduce using rule 21 (statement -> INPUT expression .) - INTEGER reduce using rule 21 (statement -> INPUT expression .) - NEW reduce using rule 21 (statement -> INPUT expression .) - $end reduce using rule 21 (statement -> INPUT expression .) - UNTIL reduce using rule 21 (statement -> INPUT expression .) - ENDWHILE reduce using rule 21 (statement -> INPUT expression .) - ENDTYPE reduce using rule 21 (statement -> INPUT expression .) - ENDCLASS reduce using rule 21 (statement -> INPUT expression .) - ELSE reduce using rule 21 (statement -> INPUT expression .) - ENDIF reduce using rule 21 (statement -> INPUT expression .) - ENDPROCEDURE reduce using rule 21 (statement -> INPUT expression .) - SEMICOLON reduce using rule 21 (statement -> INPUT expression .) - NEXT reduce using rule 21 (statement -> INPUT expression .) - ENDFUNCTION reduce using rule 21 (statement -> INPUT expression .) + DELETE reduce using rule 22 (statement -> INPUT expression .) + DECLARE reduce using rule 22 (statement -> INPUT expression .) + PUBLIC reduce using rule 22 (statement -> INPUT expression .) + PRIVATE reduce using rule 22 (statement -> INPUT expression .) + CONSTANT reduce using rule 22 (statement -> INPUT expression .) + INPUT reduce using rule 22 (statement -> INPUT expression .) + OUTPUT reduce using rule 22 (statement -> INPUT expression .) + _OUTPUT reduce using rule 22 (statement -> INPUT expression .) + IF reduce using rule 22 (statement -> INPUT expression .) + CASE reduce using rule 22 (statement -> INPUT expression .) + FOR reduce using rule 22 (statement -> INPUT expression .) + REPEAT reduce using rule 22 (statement -> INPUT expression .) + WHILE reduce using rule 22 (statement -> INPUT expression .) + PROCEDURE reduce using rule 22 (statement -> INPUT expression .) + CALL reduce using rule 22 (statement -> INPUT expression .) + FUNCTION reduce using rule 22 (statement -> INPUT expression .) + RETURN reduce using rule 22 (statement -> INPUT expression .) + OPENFILE reduce using rule 22 (statement -> INPUT expression .) + READFILE reduce using rule 22 (statement -> INPUT expression .) + WRITEFILE reduce using rule 22 (statement -> INPUT expression .) + CLOSEFILE reduce using rule 22 (statement -> INPUT expression .) + SEEK reduce using rule 22 (statement -> INPUT expression .) + TYPE reduce using rule 22 (statement -> INPUT expression .) + PASS reduce using rule 22 (statement -> INPUT expression .) + IMPORT reduce using rule 22 (statement -> INPUT expression .) + CLASS reduce using rule 22 (statement -> INPUT expression .) + LEFT_SQUARE reduce using rule 22 (statement -> INPUT expression .) + ID reduce using rule 22 (statement -> INPUT expression .) + NOT reduce using rule 22 (statement -> INPUT expression .) + LEFT_PAREN reduce using rule 22 (statement -> INPUT expression .) + DATE reduce using rule 22 (statement -> INPUT expression .) + BOOLEAN reduce using rule 22 (statement -> INPUT expression .) + CHAR reduce using rule 22 (statement -> INPUT expression .) + STRING reduce using rule 22 (statement -> INPUT expression .) + REAL reduce using rule 22 (statement -> INPUT expression .) + INTEGER reduce using rule 22 (statement -> INPUT expression .) + NEW reduce using rule 22 (statement -> INPUT expression .) + $end reduce using rule 22 (statement -> INPUT expression .) + UNTIL reduce using rule 22 (statement -> INPUT expression .) + ENDWHILE reduce using rule 22 (statement -> INPUT expression .) + ENDTYPE reduce using rule 22 (statement -> INPUT expression .) + ENDCLASS reduce using rule 22 (statement -> INPUT expression .) + ELSE reduce using rule 22 (statement -> INPUT expression .) + ENDIF reduce using rule 22 (statement -> INPUT expression .) + ENDPROCEDURE reduce using rule 22 (statement -> INPUT expression .) + SEMICOLON reduce using rule 22 (statement -> INPUT expression .) + NEXT reduce using rule 22 (statement -> INPUT expression .) + ENDFUNCTION reduce using rule 22 (statement -> INPUT expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -4482,149 +4489,149 @@ state 79 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 21 (statement -> INPUT expression .) ] - ! PLUS [ reduce using rule 21 (statement -> INPUT expression .) ] - ! MOD [ reduce using rule 21 (statement -> INPUT expression .) ] - ! DIV [ reduce using rule 21 (statement -> INPUT expression .) ] - ! POINTER [ reduce using rule 21 (statement -> INPUT expression .) ] + ! MINUS [ reduce using rule 22 (statement -> INPUT expression .) ] + ! PLUS [ reduce using rule 22 (statement -> INPUT expression .) ] + ! MOD [ reduce using rule 22 (statement -> INPUT expression .) ] + ! DIV [ reduce using rule 22 (statement -> INPUT expression .) ] + ! POINTER [ reduce using rule 22 (statement -> INPUT expression .) ] state 80 - (22) statement -> OUTPUT output_expression . - (24) output_expression -> output_expression . COMMA expression - - DELETE reduce using rule 22 (statement -> OUTPUT output_expression .) - DECLARE reduce using rule 22 (statement -> OUTPUT output_expression .) - PUBLIC reduce using rule 22 (statement -> OUTPUT output_expression .) - PRIVATE reduce using rule 22 (statement -> OUTPUT output_expression .) - CONSTANT reduce using rule 22 (statement -> OUTPUT output_expression .) - INPUT reduce using rule 22 (statement -> OUTPUT output_expression .) - OUTPUT reduce using rule 22 (statement -> OUTPUT output_expression .) - _OUTPUT reduce using rule 22 (statement -> OUTPUT output_expression .) - IF reduce using rule 22 (statement -> OUTPUT output_expression .) - CASE reduce using rule 22 (statement -> OUTPUT output_expression .) - FOR reduce using rule 22 (statement -> OUTPUT output_expression .) - REPEAT reduce using rule 22 (statement -> OUTPUT output_expression .) - WHILE reduce using rule 22 (statement -> OUTPUT output_expression .) - PROCEDURE reduce using rule 22 (statement -> OUTPUT output_expression .) - CALL reduce using rule 22 (statement -> OUTPUT output_expression .) - FUNCTION reduce using rule 22 (statement -> OUTPUT output_expression .) - RETURN reduce using rule 22 (statement -> OUTPUT output_expression .) - OPENFILE reduce using rule 22 (statement -> OUTPUT output_expression .) - READFILE reduce using rule 22 (statement -> OUTPUT output_expression .) - WRITEFILE reduce using rule 22 (statement -> OUTPUT output_expression .) - CLOSEFILE reduce using rule 22 (statement -> OUTPUT output_expression .) - SEEK reduce using rule 22 (statement -> OUTPUT output_expression .) - TYPE reduce using rule 22 (statement -> OUTPUT output_expression .) - PASS reduce using rule 22 (statement -> OUTPUT output_expression .) - IMPORT reduce using rule 22 (statement -> OUTPUT output_expression .) - CLASS reduce using rule 22 (statement -> OUTPUT output_expression .) - LEFT_SQUARE reduce using rule 22 (statement -> OUTPUT output_expression .) - ID reduce using rule 22 (statement -> OUTPUT output_expression .) - NOT reduce using rule 22 (statement -> OUTPUT output_expression .) - MINUS reduce using rule 22 (statement -> OUTPUT output_expression .) - PLUS reduce using rule 22 (statement -> OUTPUT output_expression .) - LEFT_PAREN reduce using rule 22 (statement -> OUTPUT output_expression .) - DATE reduce using rule 22 (statement -> OUTPUT output_expression .) - BOOLEAN reduce using rule 22 (statement -> OUTPUT output_expression .) - CHAR reduce using rule 22 (statement -> OUTPUT output_expression .) - STRING reduce using rule 22 (statement -> OUTPUT output_expression .) - REAL reduce using rule 22 (statement -> OUTPUT output_expression .) - INTEGER reduce using rule 22 (statement -> OUTPUT output_expression .) - MOD reduce using rule 22 (statement -> OUTPUT output_expression .) - DIV reduce using rule 22 (statement -> OUTPUT output_expression .) - POINTER reduce using rule 22 (statement -> OUTPUT output_expression .) - NEW reduce using rule 22 (statement -> OUTPUT output_expression .) - $end reduce using rule 22 (statement -> OUTPUT output_expression .) - UNTIL reduce using rule 22 (statement -> OUTPUT output_expression .) - ENDWHILE reduce using rule 22 (statement -> OUTPUT output_expression .) - ENDTYPE reduce using rule 22 (statement -> OUTPUT output_expression .) - ENDCLASS reduce using rule 22 (statement -> OUTPUT output_expression .) - ELSE reduce using rule 22 (statement -> OUTPUT output_expression .) - ENDIF reduce using rule 22 (statement -> OUTPUT output_expression .) - ENDPROCEDURE reduce using rule 22 (statement -> OUTPUT output_expression .) - SEMICOLON reduce using rule 22 (statement -> OUTPUT output_expression .) - NEXT reduce using rule 22 (statement -> OUTPUT output_expression .) - ENDFUNCTION reduce using rule 22 (statement -> OUTPUT output_expression .) - COMMA shift and go to state 143 + (23) statement -> OUTPUT output_expression . + (25) output_expression -> output_expression . COMMA expression + + DELETE reduce using rule 23 (statement -> OUTPUT output_expression .) + DECLARE reduce using rule 23 (statement -> OUTPUT output_expression .) + PUBLIC reduce using rule 23 (statement -> OUTPUT output_expression .) + PRIVATE reduce using rule 23 (statement -> OUTPUT output_expression .) + CONSTANT reduce using rule 23 (statement -> OUTPUT output_expression .) + INPUT reduce using rule 23 (statement -> OUTPUT output_expression .) + OUTPUT reduce using rule 23 (statement -> OUTPUT output_expression .) + _OUTPUT reduce using rule 23 (statement -> OUTPUT output_expression .) + IF reduce using rule 23 (statement -> OUTPUT output_expression .) + CASE reduce using rule 23 (statement -> OUTPUT output_expression .) + FOR reduce using rule 23 (statement -> OUTPUT output_expression .) + REPEAT reduce using rule 23 (statement -> OUTPUT output_expression .) + WHILE reduce using rule 23 (statement -> OUTPUT output_expression .) + PROCEDURE reduce using rule 23 (statement -> OUTPUT output_expression .) + CALL reduce using rule 23 (statement -> OUTPUT output_expression .) + FUNCTION reduce using rule 23 (statement -> OUTPUT output_expression .) + RETURN reduce using rule 23 (statement -> OUTPUT output_expression .) + OPENFILE reduce using rule 23 (statement -> OUTPUT output_expression .) + READFILE reduce using rule 23 (statement -> OUTPUT output_expression .) + WRITEFILE reduce using rule 23 (statement -> OUTPUT output_expression .) + CLOSEFILE reduce using rule 23 (statement -> OUTPUT output_expression .) + SEEK reduce using rule 23 (statement -> OUTPUT output_expression .) + TYPE reduce using rule 23 (statement -> OUTPUT output_expression .) + PASS reduce using rule 23 (statement -> OUTPUT output_expression .) + IMPORT reduce using rule 23 (statement -> OUTPUT output_expression .) + CLASS reduce using rule 23 (statement -> OUTPUT output_expression .) + LEFT_SQUARE reduce using rule 23 (statement -> OUTPUT output_expression .) + ID reduce using rule 23 (statement -> OUTPUT output_expression .) + NOT reduce using rule 23 (statement -> OUTPUT output_expression .) + MINUS reduce using rule 23 (statement -> OUTPUT output_expression .) + PLUS reduce using rule 23 (statement -> OUTPUT output_expression .) + LEFT_PAREN reduce using rule 23 (statement -> OUTPUT output_expression .) + DATE reduce using rule 23 (statement -> OUTPUT output_expression .) + BOOLEAN reduce using rule 23 (statement -> OUTPUT output_expression .) + CHAR reduce using rule 23 (statement -> OUTPUT output_expression .) + STRING reduce using rule 23 (statement -> OUTPUT output_expression .) + REAL reduce using rule 23 (statement -> OUTPUT output_expression .) + INTEGER reduce using rule 23 (statement -> OUTPUT output_expression .) + MOD reduce using rule 23 (statement -> OUTPUT output_expression .) + DIV reduce using rule 23 (statement -> OUTPUT output_expression .) + POINTER reduce using rule 23 (statement -> OUTPUT output_expression .) + NEW reduce using rule 23 (statement -> OUTPUT output_expression .) + $end reduce using rule 23 (statement -> OUTPUT output_expression .) + UNTIL reduce using rule 23 (statement -> OUTPUT output_expression .) + ENDWHILE reduce using rule 23 (statement -> OUTPUT output_expression .) + ENDTYPE reduce using rule 23 (statement -> OUTPUT output_expression .) + ENDCLASS reduce using rule 23 (statement -> OUTPUT output_expression .) + ELSE reduce using rule 23 (statement -> OUTPUT output_expression .) + ENDIF reduce using rule 23 (statement -> OUTPUT output_expression .) + ENDPROCEDURE reduce using rule 23 (statement -> OUTPUT output_expression .) + SEMICOLON reduce using rule 23 (statement -> OUTPUT output_expression .) + NEXT reduce using rule 23 (statement -> OUTPUT output_expression .) + ENDFUNCTION reduce using rule 23 (statement -> OUTPUT output_expression .) + COMMA shift and go to state 144 state 81 - (25) output_expression -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (26) output_expression -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - COMMA reduce using rule 25 (output_expression -> expression .) - DELETE reduce using rule 25 (output_expression -> expression .) - DECLARE reduce using rule 25 (output_expression -> expression .) - PUBLIC reduce using rule 25 (output_expression -> expression .) - PRIVATE reduce using rule 25 (output_expression -> expression .) - CONSTANT reduce using rule 25 (output_expression -> expression .) - INPUT reduce using rule 25 (output_expression -> expression .) - OUTPUT reduce using rule 25 (output_expression -> expression .) - _OUTPUT reduce using rule 25 (output_expression -> expression .) - IF reduce using rule 25 (output_expression -> expression .) - CASE reduce using rule 25 (output_expression -> expression .) - FOR reduce using rule 25 (output_expression -> expression .) - REPEAT reduce using rule 25 (output_expression -> expression .) - WHILE reduce using rule 25 (output_expression -> expression .) - PROCEDURE reduce using rule 25 (output_expression -> expression .) - CALL reduce using rule 25 (output_expression -> expression .) - FUNCTION reduce using rule 25 (output_expression -> expression .) - RETURN reduce using rule 25 (output_expression -> expression .) - OPENFILE reduce using rule 25 (output_expression -> expression .) - READFILE reduce using rule 25 (output_expression -> expression .) - WRITEFILE reduce using rule 25 (output_expression -> expression .) - CLOSEFILE reduce using rule 25 (output_expression -> expression .) - SEEK reduce using rule 25 (output_expression -> expression .) - TYPE reduce using rule 25 (output_expression -> expression .) - PASS reduce using rule 25 (output_expression -> expression .) - IMPORT reduce using rule 25 (output_expression -> expression .) - CLASS reduce using rule 25 (output_expression -> expression .) - LEFT_SQUARE reduce using rule 25 (output_expression -> expression .) - ID reduce using rule 25 (output_expression -> expression .) - NOT reduce using rule 25 (output_expression -> expression .) - LEFT_PAREN reduce using rule 25 (output_expression -> expression .) - DATE reduce using rule 25 (output_expression -> expression .) - BOOLEAN reduce using rule 25 (output_expression -> expression .) - CHAR reduce using rule 25 (output_expression -> expression .) - STRING reduce using rule 25 (output_expression -> expression .) - REAL reduce using rule 25 (output_expression -> expression .) - INTEGER reduce using rule 25 (output_expression -> expression .) - NEW reduce using rule 25 (output_expression -> expression .) - $end reduce using rule 25 (output_expression -> expression .) - UNTIL reduce using rule 25 (output_expression -> expression .) - ENDWHILE reduce using rule 25 (output_expression -> expression .) - ENDTYPE reduce using rule 25 (output_expression -> expression .) - ENDCLASS reduce using rule 25 (output_expression -> expression .) - ELSE reduce using rule 25 (output_expression -> expression .) - ENDIF reduce using rule 25 (output_expression -> expression .) - ENDPROCEDURE reduce using rule 25 (output_expression -> expression .) - SEMICOLON reduce using rule 25 (output_expression -> expression .) - NEXT reduce using rule 25 (output_expression -> expression .) - ENDFUNCTION reduce using rule 25 (output_expression -> expression .) + COMMA reduce using rule 26 (output_expression -> expression .) + DELETE reduce using rule 26 (output_expression -> expression .) + DECLARE reduce using rule 26 (output_expression -> expression .) + PUBLIC reduce using rule 26 (output_expression -> expression .) + PRIVATE reduce using rule 26 (output_expression -> expression .) + CONSTANT reduce using rule 26 (output_expression -> expression .) + INPUT reduce using rule 26 (output_expression -> expression .) + OUTPUT reduce using rule 26 (output_expression -> expression .) + _OUTPUT reduce using rule 26 (output_expression -> expression .) + IF reduce using rule 26 (output_expression -> expression .) + CASE reduce using rule 26 (output_expression -> expression .) + FOR reduce using rule 26 (output_expression -> expression .) + REPEAT reduce using rule 26 (output_expression -> expression .) + WHILE reduce using rule 26 (output_expression -> expression .) + PROCEDURE reduce using rule 26 (output_expression -> expression .) + CALL reduce using rule 26 (output_expression -> expression .) + FUNCTION reduce using rule 26 (output_expression -> expression .) + RETURN reduce using rule 26 (output_expression -> expression .) + OPENFILE reduce using rule 26 (output_expression -> expression .) + READFILE reduce using rule 26 (output_expression -> expression .) + WRITEFILE reduce using rule 26 (output_expression -> expression .) + CLOSEFILE reduce using rule 26 (output_expression -> expression .) + SEEK reduce using rule 26 (output_expression -> expression .) + TYPE reduce using rule 26 (output_expression -> expression .) + PASS reduce using rule 26 (output_expression -> expression .) + IMPORT reduce using rule 26 (output_expression -> expression .) + CLASS reduce using rule 26 (output_expression -> expression .) + LEFT_SQUARE reduce using rule 26 (output_expression -> expression .) + ID reduce using rule 26 (output_expression -> expression .) + NOT reduce using rule 26 (output_expression -> expression .) + LEFT_PAREN reduce using rule 26 (output_expression -> expression .) + DATE reduce using rule 26 (output_expression -> expression .) + BOOLEAN reduce using rule 26 (output_expression -> expression .) + CHAR reduce using rule 26 (output_expression -> expression .) + STRING reduce using rule 26 (output_expression -> expression .) + REAL reduce using rule 26 (output_expression -> expression .) + INTEGER reduce using rule 26 (output_expression -> expression .) + NEW reduce using rule 26 (output_expression -> expression .) + $end reduce using rule 26 (output_expression -> expression .) + UNTIL reduce using rule 26 (output_expression -> expression .) + ENDWHILE reduce using rule 26 (output_expression -> expression .) + ENDTYPE reduce using rule 26 (output_expression -> expression .) + ENDCLASS reduce using rule 26 (output_expression -> expression .) + ELSE reduce using rule 26 (output_expression -> expression .) + ENDIF reduce using rule 26 (output_expression -> expression .) + ENDPROCEDURE reduce using rule 26 (output_expression -> expression .) + SEMICOLON reduce using rule 26 (output_expression -> expression .) + NEXT reduce using rule 26 (output_expression -> expression .) + ENDFUNCTION reduce using rule 26 (output_expression -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -4643,97 +4650,97 @@ state 81 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 25 (output_expression -> expression .) ] - ! PLUS [ reduce using rule 25 (output_expression -> expression .) ] - ! MOD [ reduce using rule 25 (output_expression -> expression .) ] - ! DIV [ reduce using rule 25 (output_expression -> expression .) ] - ! POINTER [ reduce using rule 25 (output_expression -> expression .) ] + ! MINUS [ reduce using rule 26 (output_expression -> expression .) ] + ! PLUS [ reduce using rule 26 (output_expression -> expression .) ] + ! MOD [ reduce using rule 26 (output_expression -> expression .) ] + ! DIV [ reduce using rule 26 (output_expression -> expression .) ] + ! POINTER [ reduce using rule 26 (output_expression -> expression .) ] state 82 - (23) statement -> _OUTPUT output_expression . - (24) output_expression -> output_expression . COMMA expression - - DELETE reduce using rule 23 (statement -> _OUTPUT output_expression .) - DECLARE reduce using rule 23 (statement -> _OUTPUT output_expression .) - PUBLIC reduce using rule 23 (statement -> _OUTPUT output_expression .) - PRIVATE reduce using rule 23 (statement -> _OUTPUT output_expression .) - CONSTANT reduce using rule 23 (statement -> _OUTPUT output_expression .) - INPUT reduce using rule 23 (statement -> _OUTPUT output_expression .) - OUTPUT reduce using rule 23 (statement -> _OUTPUT output_expression .) - _OUTPUT reduce using rule 23 (statement -> _OUTPUT output_expression .) - IF reduce using rule 23 (statement -> _OUTPUT output_expression .) - CASE reduce using rule 23 (statement -> _OUTPUT output_expression .) - FOR reduce using rule 23 (statement -> _OUTPUT output_expression .) - REPEAT reduce using rule 23 (statement -> _OUTPUT output_expression .) - WHILE reduce using rule 23 (statement -> _OUTPUT output_expression .) - PROCEDURE reduce using rule 23 (statement -> _OUTPUT output_expression .) - CALL reduce using rule 23 (statement -> _OUTPUT output_expression .) - FUNCTION reduce using rule 23 (statement -> _OUTPUT output_expression .) - RETURN reduce using rule 23 (statement -> _OUTPUT output_expression .) - OPENFILE reduce using rule 23 (statement -> _OUTPUT output_expression .) - READFILE reduce using rule 23 (statement -> _OUTPUT output_expression .) - WRITEFILE reduce using rule 23 (statement -> _OUTPUT output_expression .) - CLOSEFILE reduce using rule 23 (statement -> _OUTPUT output_expression .) - SEEK reduce using rule 23 (statement -> _OUTPUT output_expression .) - TYPE reduce using rule 23 (statement -> _OUTPUT output_expression .) - PASS reduce using rule 23 (statement -> _OUTPUT output_expression .) - IMPORT reduce using rule 23 (statement -> _OUTPUT output_expression .) - CLASS reduce using rule 23 (statement -> _OUTPUT output_expression .) - LEFT_SQUARE reduce using rule 23 (statement -> _OUTPUT output_expression .) - ID reduce using rule 23 (statement -> _OUTPUT output_expression .) - NOT reduce using rule 23 (statement -> _OUTPUT output_expression .) - MINUS reduce using rule 23 (statement -> _OUTPUT output_expression .) - PLUS reduce using rule 23 (statement -> _OUTPUT output_expression .) - LEFT_PAREN reduce using rule 23 (statement -> _OUTPUT output_expression .) - DATE reduce using rule 23 (statement -> _OUTPUT output_expression .) - BOOLEAN reduce using rule 23 (statement -> _OUTPUT output_expression .) - CHAR reduce using rule 23 (statement -> _OUTPUT output_expression .) - STRING reduce using rule 23 (statement -> _OUTPUT output_expression .) - REAL reduce using rule 23 (statement -> _OUTPUT output_expression .) - INTEGER reduce using rule 23 (statement -> _OUTPUT output_expression .) - MOD reduce using rule 23 (statement -> _OUTPUT output_expression .) - DIV reduce using rule 23 (statement -> _OUTPUT output_expression .) - POINTER reduce using rule 23 (statement -> _OUTPUT output_expression .) - NEW reduce using rule 23 (statement -> _OUTPUT output_expression .) - $end reduce using rule 23 (statement -> _OUTPUT output_expression .) - UNTIL reduce using rule 23 (statement -> _OUTPUT output_expression .) - ENDWHILE reduce using rule 23 (statement -> _OUTPUT output_expression .) - ENDTYPE reduce using rule 23 (statement -> _OUTPUT output_expression .) - ENDCLASS reduce using rule 23 (statement -> _OUTPUT output_expression .) - ELSE reduce using rule 23 (statement -> _OUTPUT output_expression .) - ENDIF reduce using rule 23 (statement -> _OUTPUT output_expression .) - ENDPROCEDURE reduce using rule 23 (statement -> _OUTPUT output_expression .) - SEMICOLON reduce using rule 23 (statement -> _OUTPUT output_expression .) - NEXT reduce using rule 23 (statement -> _OUTPUT output_expression .) - ENDFUNCTION reduce using rule 23 (statement -> _OUTPUT output_expression .) - COMMA shift and go to state 143 + (24) statement -> _OUTPUT output_expression . + (25) output_expression -> output_expression . COMMA expression + + DELETE reduce using rule 24 (statement -> _OUTPUT output_expression .) + DECLARE reduce using rule 24 (statement -> _OUTPUT output_expression .) + PUBLIC reduce using rule 24 (statement -> _OUTPUT output_expression .) + PRIVATE reduce using rule 24 (statement -> _OUTPUT output_expression .) + CONSTANT reduce using rule 24 (statement -> _OUTPUT output_expression .) + INPUT reduce using rule 24 (statement -> _OUTPUT output_expression .) + OUTPUT reduce using rule 24 (statement -> _OUTPUT output_expression .) + _OUTPUT reduce using rule 24 (statement -> _OUTPUT output_expression .) + IF reduce using rule 24 (statement -> _OUTPUT output_expression .) + CASE reduce using rule 24 (statement -> _OUTPUT output_expression .) + FOR reduce using rule 24 (statement -> _OUTPUT output_expression .) + REPEAT reduce using rule 24 (statement -> _OUTPUT output_expression .) + WHILE reduce using rule 24 (statement -> _OUTPUT output_expression .) + PROCEDURE reduce using rule 24 (statement -> _OUTPUT output_expression .) + CALL reduce using rule 24 (statement -> _OUTPUT output_expression .) + FUNCTION reduce using rule 24 (statement -> _OUTPUT output_expression .) + RETURN reduce using rule 24 (statement -> _OUTPUT output_expression .) + OPENFILE reduce using rule 24 (statement -> _OUTPUT output_expression .) + READFILE reduce using rule 24 (statement -> _OUTPUT output_expression .) + WRITEFILE reduce using rule 24 (statement -> _OUTPUT output_expression .) + CLOSEFILE reduce using rule 24 (statement -> _OUTPUT output_expression .) + SEEK reduce using rule 24 (statement -> _OUTPUT output_expression .) + TYPE reduce using rule 24 (statement -> _OUTPUT output_expression .) + PASS reduce using rule 24 (statement -> _OUTPUT output_expression .) + IMPORT reduce using rule 24 (statement -> _OUTPUT output_expression .) + CLASS reduce using rule 24 (statement -> _OUTPUT output_expression .) + LEFT_SQUARE reduce using rule 24 (statement -> _OUTPUT output_expression .) + ID reduce using rule 24 (statement -> _OUTPUT output_expression .) + NOT reduce using rule 24 (statement -> _OUTPUT output_expression .) + MINUS reduce using rule 24 (statement -> _OUTPUT output_expression .) + PLUS reduce using rule 24 (statement -> _OUTPUT output_expression .) + LEFT_PAREN reduce using rule 24 (statement -> _OUTPUT output_expression .) + DATE reduce using rule 24 (statement -> _OUTPUT output_expression .) + BOOLEAN reduce using rule 24 (statement -> _OUTPUT output_expression .) + CHAR reduce using rule 24 (statement -> _OUTPUT output_expression .) + STRING reduce using rule 24 (statement -> _OUTPUT output_expression .) + REAL reduce using rule 24 (statement -> _OUTPUT output_expression .) + INTEGER reduce using rule 24 (statement -> _OUTPUT output_expression .) + MOD reduce using rule 24 (statement -> _OUTPUT output_expression .) + DIV reduce using rule 24 (statement -> _OUTPUT output_expression .) + POINTER reduce using rule 24 (statement -> _OUTPUT output_expression .) + NEW reduce using rule 24 (statement -> _OUTPUT output_expression .) + $end reduce using rule 24 (statement -> _OUTPUT output_expression .) + UNTIL reduce using rule 24 (statement -> _OUTPUT output_expression .) + ENDWHILE reduce using rule 24 (statement -> _OUTPUT output_expression .) + ENDTYPE reduce using rule 24 (statement -> _OUTPUT output_expression .) + ENDCLASS reduce using rule 24 (statement -> _OUTPUT output_expression .) + ELSE reduce using rule 24 (statement -> _OUTPUT output_expression .) + ENDIF reduce using rule 24 (statement -> _OUTPUT output_expression .) + ENDPROCEDURE reduce using rule 24 (statement -> _OUTPUT output_expression .) + SEMICOLON reduce using rule 24 (statement -> _OUTPUT output_expression .) + NEXT reduce using rule 24 (statement -> _OUTPUT output_expression .) + ENDFUNCTION reduce using rule 24 (statement -> _OUTPUT output_expression .) + COMMA shift and go to state 144 state 83 - (26) statement -> IF expression . THEN statements ELSE statements ENDIF - (27) statement -> IF expression . THEN statements ENDIF - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - THEN shift and go to state 144 + (27) statement -> IF expression . THEN statements ELSE statements ENDIF + (28) statement -> IF expression . THEN statements ENDIF + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + THEN shift and go to state 145 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -4755,45 +4762,45 @@ state 83 state 84 - (28) statement -> CASE OF . expression cases ENDCASE - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (29) statement -> CASE OF . expression cases ENDCASE + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4812,131 +4819,132 @@ state 84 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 145 + expression shift and go to state 146 state 85 - (36) statement -> FOR ID . ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> FOR ID . ASSIGN expression TO expression statements NEXT ID + (37) statement -> FOR ID . ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> FOR ID . ASSIGN expression TO expression statements NEXT ID - ASSIGN shift and go to state 146 + ASSIGN shift and go to state 147 state 86 - (38) statement -> REPEAT statements . UNTIL expression + (39) statement -> REPEAT statements . UNTIL expression (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - UNTIL shift and go to state 147 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + UNTIL shift and go to state 148 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -4985,25 +4993,25 @@ state 86 state 87 - (39) statement -> WHILE expression . DO statements ENDWHILE - (40) statement -> WHILE expression . statements ENDWHILE - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (40) statement -> WHILE expression . DO statements ENDWHILE + (41) statement -> WHILE expression . statements ENDWHILE + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -5011,112 +5019,113 @@ state 87 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - DO shift and go to state 148 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + DO shift and go to state 149 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5125,15 +5134,15 @@ state 87 GREATER shift and go to state 64 LESS_EQUAL shift and go to state 65 GREATER_EQUAL shift and go to state 66 - MOD shift and go to state 150 - DIV shift and go to state 151 + MOD shift and go to state 151 + DIV shift and go to state 152 MUL shift and go to state 69 N_DIV shift and go to state 70 - PLUS shift and go to state 152 - MINUS shift and go to state 153 + PLUS shift and go to state 153 + MINUS shift and go to state 154 CONNECT shift and go to state 73 DOT shift and go to state 74 - POINTER shift and go to state 154 + POINTER shift and go to state 155 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -5173,47 +5182,47 @@ state 87 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 149 + statements shift and go to state 150 statement shift and go to state 2 state 88 - (82) statement -> PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (83) statement -> PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 155 + LEFT_PAREN shift and go to state 156 state 89 - (83) statement -> PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 156 + LEFT_PAREN shift and go to state 157 state 90 - (62) expression -> LEFT_PAREN expression . RIGHT_PAREN - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_PAREN shift and go to state 157 + (63) expression -> LEFT_PAREN expression . RIGHT_PAREN + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_PAREN shift and go to state 158 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5235,183 +5244,183 @@ state 90 state 91 - (140) expression -> NEW ID . - (141) expression -> NEW ID . LEFT_PAREN parameters RIGHT_PAREN + (141) expression -> NEW ID . + (142) expression -> NEW ID . LEFT_PAREN parameters RIGHT_PAREN ! shift/reduce conflict for LEFT_PAREN resolved as shift - ASSIGN reduce using rule 140 (expression -> NEW ID .) - OR reduce using rule 140 (expression -> NEW ID .) - AND reduce using rule 140 (expression -> NEW ID .) - EQUAL reduce using rule 140 (expression -> NEW ID .) - NOT_EQUAL reduce using rule 140 (expression -> NEW ID .) - LESS reduce using rule 140 (expression -> NEW ID .) - GREATER reduce using rule 140 (expression -> NEW ID .) - LESS_EQUAL reduce using rule 140 (expression -> NEW ID .) - GREATER_EQUAL reduce using rule 140 (expression -> NEW ID .) - MOD reduce using rule 140 (expression -> NEW ID .) - DIV reduce using rule 140 (expression -> NEW ID .) - MUL reduce using rule 140 (expression -> NEW ID .) - N_DIV reduce using rule 140 (expression -> NEW ID .) - PLUS reduce using rule 140 (expression -> NEW ID .) - MINUS reduce using rule 140 (expression -> NEW ID .) - CONNECT reduce using rule 140 (expression -> NEW ID .) - DOT reduce using rule 140 (expression -> NEW ID .) - POINTER reduce using rule 140 (expression -> NEW ID .) - DELETE reduce using rule 140 (expression -> NEW ID .) - DECLARE reduce using rule 140 (expression -> NEW ID .) - PUBLIC reduce using rule 140 (expression -> NEW ID .) - PRIVATE reduce using rule 140 (expression -> NEW ID .) - CONSTANT reduce using rule 140 (expression -> NEW ID .) - INPUT reduce using rule 140 (expression -> NEW ID .) - OUTPUT reduce using rule 140 (expression -> NEW ID .) - _OUTPUT reduce using rule 140 (expression -> NEW ID .) - IF reduce using rule 140 (expression -> NEW ID .) - CASE reduce using rule 140 (expression -> NEW ID .) - FOR reduce using rule 140 (expression -> NEW ID .) - REPEAT reduce using rule 140 (expression -> NEW ID .) - WHILE reduce using rule 140 (expression -> NEW ID .) - PROCEDURE reduce using rule 140 (expression -> NEW ID .) - CALL reduce using rule 140 (expression -> NEW ID .) - FUNCTION reduce using rule 140 (expression -> NEW ID .) - RETURN reduce using rule 140 (expression -> NEW ID .) - OPENFILE reduce using rule 140 (expression -> NEW ID .) - READFILE reduce using rule 140 (expression -> NEW ID .) - WRITEFILE reduce using rule 140 (expression -> NEW ID .) - CLOSEFILE reduce using rule 140 (expression -> NEW ID .) - SEEK reduce using rule 140 (expression -> NEW ID .) - TYPE reduce using rule 140 (expression -> NEW ID .) - PASS reduce using rule 140 (expression -> NEW ID .) - IMPORT reduce using rule 140 (expression -> NEW ID .) - CLASS reduce using rule 140 (expression -> NEW ID .) - LEFT_SQUARE reduce using rule 140 (expression -> NEW ID .) - ID reduce using rule 140 (expression -> NEW ID .) - NOT reduce using rule 140 (expression -> NEW ID .) - DATE reduce using rule 140 (expression -> NEW ID .) - BOOLEAN reduce using rule 140 (expression -> NEW ID .) - CHAR reduce using rule 140 (expression -> NEW ID .) - STRING reduce using rule 140 (expression -> NEW ID .) - REAL reduce using rule 140 (expression -> NEW ID .) - INTEGER reduce using rule 140 (expression -> NEW ID .) - NEW reduce using rule 140 (expression -> NEW ID .) - $end reduce using rule 140 (expression -> NEW ID .) - RIGHT_SQUARE reduce using rule 140 (expression -> NEW ID .) - COMMA reduce using rule 140 (expression -> NEW ID .) - UNTIL reduce using rule 140 (expression -> NEW ID .) - ENDWHILE reduce using rule 140 (expression -> NEW ID .) - ENDTYPE reduce using rule 140 (expression -> NEW ID .) - ENDCLASS reduce using rule 140 (expression -> NEW ID .) - ELSE reduce using rule 140 (expression -> NEW ID .) - ENDIF reduce using rule 140 (expression -> NEW ID .) - ENDPROCEDURE reduce using rule 140 (expression -> NEW ID .) - SEMICOLON reduce using rule 140 (expression -> NEW ID .) - NEXT reduce using rule 140 (expression -> NEW ID .) - ENDFUNCTION reduce using rule 140 (expression -> NEW ID .) - THEN reduce using rule 140 (expression -> NEW ID .) - DO reduce using rule 140 (expression -> NEW ID .) - RIGHT_PAREN reduce using rule 140 (expression -> NEW ID .) - OTHERWISE reduce using rule 140 (expression -> NEW ID .) - TO reduce using rule 140 (expression -> NEW ID .) - COLON reduce using rule 140 (expression -> NEW ID .) - STEP reduce using rule 140 (expression -> NEW ID .) - LEFT_PAREN shift and go to state 158 - - ! LEFT_PAREN [ reduce using rule 140 (expression -> NEW ID .) ] + ASSIGN reduce using rule 141 (expression -> NEW ID .) + OR reduce using rule 141 (expression -> NEW ID .) + AND reduce using rule 141 (expression -> NEW ID .) + EQUAL reduce using rule 141 (expression -> NEW ID .) + NOT_EQUAL reduce using rule 141 (expression -> NEW ID .) + LESS reduce using rule 141 (expression -> NEW ID .) + GREATER reduce using rule 141 (expression -> NEW ID .) + LESS_EQUAL reduce using rule 141 (expression -> NEW ID .) + GREATER_EQUAL reduce using rule 141 (expression -> NEW ID .) + MOD reduce using rule 141 (expression -> NEW ID .) + DIV reduce using rule 141 (expression -> NEW ID .) + MUL reduce using rule 141 (expression -> NEW ID .) + N_DIV reduce using rule 141 (expression -> NEW ID .) + PLUS reduce using rule 141 (expression -> NEW ID .) + MINUS reduce using rule 141 (expression -> NEW ID .) + CONNECT reduce using rule 141 (expression -> NEW ID .) + DOT reduce using rule 141 (expression -> NEW ID .) + POINTER reduce using rule 141 (expression -> NEW ID .) + DELETE reduce using rule 141 (expression -> NEW ID .) + DECLARE reduce using rule 141 (expression -> NEW ID .) + PUBLIC reduce using rule 141 (expression -> NEW ID .) + PRIVATE reduce using rule 141 (expression -> NEW ID .) + CONSTANT reduce using rule 141 (expression -> NEW ID .) + INPUT reduce using rule 141 (expression -> NEW ID .) + OUTPUT reduce using rule 141 (expression -> NEW ID .) + _OUTPUT reduce using rule 141 (expression -> NEW ID .) + IF reduce using rule 141 (expression -> NEW ID .) + CASE reduce using rule 141 (expression -> NEW ID .) + FOR reduce using rule 141 (expression -> NEW ID .) + REPEAT reduce using rule 141 (expression -> NEW ID .) + WHILE reduce using rule 141 (expression -> NEW ID .) + PROCEDURE reduce using rule 141 (expression -> NEW ID .) + CALL reduce using rule 141 (expression -> NEW ID .) + FUNCTION reduce using rule 141 (expression -> NEW ID .) + RETURN reduce using rule 141 (expression -> NEW ID .) + OPENFILE reduce using rule 141 (expression -> NEW ID .) + READFILE reduce using rule 141 (expression -> NEW ID .) + WRITEFILE reduce using rule 141 (expression -> NEW ID .) + CLOSEFILE reduce using rule 141 (expression -> NEW ID .) + SEEK reduce using rule 141 (expression -> NEW ID .) + TYPE reduce using rule 141 (expression -> NEW ID .) + PASS reduce using rule 141 (expression -> NEW ID .) + IMPORT reduce using rule 141 (expression -> NEW ID .) + CLASS reduce using rule 141 (expression -> NEW ID .) + LEFT_SQUARE reduce using rule 141 (expression -> NEW ID .) + ID reduce using rule 141 (expression -> NEW ID .) + NOT reduce using rule 141 (expression -> NEW ID .) + DATE reduce using rule 141 (expression -> NEW ID .) + BOOLEAN reduce using rule 141 (expression -> NEW ID .) + CHAR reduce using rule 141 (expression -> NEW ID .) + STRING reduce using rule 141 (expression -> NEW ID .) + REAL reduce using rule 141 (expression -> NEW ID .) + INTEGER reduce using rule 141 (expression -> NEW ID .) + NEW reduce using rule 141 (expression -> NEW ID .) + $end reduce using rule 141 (expression -> NEW ID .) + RIGHT_SQUARE reduce using rule 141 (expression -> NEW ID .) + COMMA reduce using rule 141 (expression -> NEW ID .) + UNTIL reduce using rule 141 (expression -> NEW ID .) + ENDWHILE reduce using rule 141 (expression -> NEW ID .) + ENDTYPE reduce using rule 141 (expression -> NEW ID .) + ENDCLASS reduce using rule 141 (expression -> NEW ID .) + ELSE reduce using rule 141 (expression -> NEW ID .) + ENDIF reduce using rule 141 (expression -> NEW ID .) + ENDPROCEDURE reduce using rule 141 (expression -> NEW ID .) + SEMICOLON reduce using rule 141 (expression -> NEW ID .) + NEXT reduce using rule 141 (expression -> NEW ID .) + ENDFUNCTION reduce using rule 141 (expression -> NEW ID .) + THEN reduce using rule 141 (expression -> NEW ID .) + DO reduce using rule 141 (expression -> NEW ID .) + RIGHT_PAREN reduce using rule 141 (expression -> NEW ID .) + OTHERWISE reduce using rule 141 (expression -> NEW ID .) + TO reduce using rule 141 (expression -> NEW ID .) + COLON reduce using rule 141 (expression -> NEW ID .) + STEP reduce using rule 141 (expression -> NEW ID .) + LEFT_PAREN shift and go to state 159 + + ! LEFT_PAREN [ reduce using rule 141 (expression -> NEW ID .) ] state 92 - (94) statement -> CALL ID . LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> CALL ID . LEFT_PAREN RIGHT_PAREN + (95) statement -> CALL ID . LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> CALL ID . LEFT_PAREN RIGHT_PAREN - LEFT_PAREN shift and go to state 159 + LEFT_PAREN shift and go to state 160 state 93 - (96) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (97) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - LEFT_PAREN shift and go to state 160 + LEFT_PAREN shift and go to state 161 state 94 - (118) statement -> RETURN expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (119) statement -> RETURN expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 118 (statement -> RETURN expression .) - DECLARE reduce using rule 118 (statement -> RETURN expression .) - PUBLIC reduce using rule 118 (statement -> RETURN expression .) - PRIVATE reduce using rule 118 (statement -> RETURN expression .) - CONSTANT reduce using rule 118 (statement -> RETURN expression .) - INPUT reduce using rule 118 (statement -> RETURN expression .) - OUTPUT reduce using rule 118 (statement -> RETURN expression .) - _OUTPUT reduce using rule 118 (statement -> RETURN expression .) - IF reduce using rule 118 (statement -> RETURN expression .) - CASE reduce using rule 118 (statement -> RETURN expression .) - FOR reduce using rule 118 (statement -> RETURN expression .) - REPEAT reduce using rule 118 (statement -> RETURN expression .) - WHILE reduce using rule 118 (statement -> RETURN expression .) - PROCEDURE reduce using rule 118 (statement -> RETURN expression .) - CALL reduce using rule 118 (statement -> RETURN expression .) - FUNCTION reduce using rule 118 (statement -> RETURN expression .) - RETURN reduce using rule 118 (statement -> RETURN expression .) - OPENFILE reduce using rule 118 (statement -> RETURN expression .) - READFILE reduce using rule 118 (statement -> RETURN expression .) - WRITEFILE reduce using rule 118 (statement -> RETURN expression .) - CLOSEFILE reduce using rule 118 (statement -> RETURN expression .) - SEEK reduce using rule 118 (statement -> RETURN expression .) - TYPE reduce using rule 118 (statement -> RETURN expression .) - PASS reduce using rule 118 (statement -> RETURN expression .) - IMPORT reduce using rule 118 (statement -> RETURN expression .) - CLASS reduce using rule 118 (statement -> RETURN expression .) - LEFT_SQUARE reduce using rule 118 (statement -> RETURN expression .) - ID reduce using rule 118 (statement -> RETURN expression .) - NOT reduce using rule 118 (statement -> RETURN expression .) - LEFT_PAREN reduce using rule 118 (statement -> RETURN expression .) - DATE reduce using rule 118 (statement -> RETURN expression .) - BOOLEAN reduce using rule 118 (statement -> RETURN expression .) - CHAR reduce using rule 118 (statement -> RETURN expression .) - STRING reduce using rule 118 (statement -> RETURN expression .) - REAL reduce using rule 118 (statement -> RETURN expression .) - INTEGER reduce using rule 118 (statement -> RETURN expression .) - NEW reduce using rule 118 (statement -> RETURN expression .) - $end reduce using rule 118 (statement -> RETURN expression .) - UNTIL reduce using rule 118 (statement -> RETURN expression .) - ENDWHILE reduce using rule 118 (statement -> RETURN expression .) - ENDTYPE reduce using rule 118 (statement -> RETURN expression .) - ENDCLASS reduce using rule 118 (statement -> RETURN expression .) - ELSE reduce using rule 118 (statement -> RETURN expression .) - ENDIF reduce using rule 118 (statement -> RETURN expression .) - ENDPROCEDURE reduce using rule 118 (statement -> RETURN expression .) - SEMICOLON reduce using rule 118 (statement -> RETURN expression .) - NEXT reduce using rule 118 (statement -> RETURN expression .) - ENDFUNCTION reduce using rule 118 (statement -> RETURN expression .) + DELETE reduce using rule 119 (statement -> RETURN expression .) + DECLARE reduce using rule 119 (statement -> RETURN expression .) + PUBLIC reduce using rule 119 (statement -> RETURN expression .) + PRIVATE reduce using rule 119 (statement -> RETURN expression .) + CONSTANT reduce using rule 119 (statement -> RETURN expression .) + INPUT reduce using rule 119 (statement -> RETURN expression .) + OUTPUT reduce using rule 119 (statement -> RETURN expression .) + _OUTPUT reduce using rule 119 (statement -> RETURN expression .) + IF reduce using rule 119 (statement -> RETURN expression .) + CASE reduce using rule 119 (statement -> RETURN expression .) + FOR reduce using rule 119 (statement -> RETURN expression .) + REPEAT reduce using rule 119 (statement -> RETURN expression .) + WHILE reduce using rule 119 (statement -> RETURN expression .) + PROCEDURE reduce using rule 119 (statement -> RETURN expression .) + CALL reduce using rule 119 (statement -> RETURN expression .) + FUNCTION reduce using rule 119 (statement -> RETURN expression .) + RETURN reduce using rule 119 (statement -> RETURN expression .) + OPENFILE reduce using rule 119 (statement -> RETURN expression .) + READFILE reduce using rule 119 (statement -> RETURN expression .) + WRITEFILE reduce using rule 119 (statement -> RETURN expression .) + CLOSEFILE reduce using rule 119 (statement -> RETURN expression .) + SEEK reduce using rule 119 (statement -> RETURN expression .) + TYPE reduce using rule 119 (statement -> RETURN expression .) + PASS reduce using rule 119 (statement -> RETURN expression .) + IMPORT reduce using rule 119 (statement -> RETURN expression .) + CLASS reduce using rule 119 (statement -> RETURN expression .) + LEFT_SQUARE reduce using rule 119 (statement -> RETURN expression .) + ID reduce using rule 119 (statement -> RETURN expression .) + NOT reduce using rule 119 (statement -> RETURN expression .) + LEFT_PAREN reduce using rule 119 (statement -> RETURN expression .) + DATE reduce using rule 119 (statement -> RETURN expression .) + BOOLEAN reduce using rule 119 (statement -> RETURN expression .) + CHAR reduce using rule 119 (statement -> RETURN expression .) + STRING reduce using rule 119 (statement -> RETURN expression .) + REAL reduce using rule 119 (statement -> RETURN expression .) + INTEGER reduce using rule 119 (statement -> RETURN expression .) + NEW reduce using rule 119 (statement -> RETURN expression .) + $end reduce using rule 119 (statement -> RETURN expression .) + UNTIL reduce using rule 119 (statement -> RETURN expression .) + ENDWHILE reduce using rule 119 (statement -> RETURN expression .) + ENDTYPE reduce using rule 119 (statement -> RETURN expression .) + ENDCLASS reduce using rule 119 (statement -> RETURN expression .) + ELSE reduce using rule 119 (statement -> RETURN expression .) + ENDIF reduce using rule 119 (statement -> RETURN expression .) + ENDPROCEDURE reduce using rule 119 (statement -> RETURN expression .) + SEMICOLON reduce using rule 119 (statement -> RETURN expression .) + NEXT reduce using rule 119 (statement -> RETURN expression .) + ENDFUNCTION reduce using rule 119 (statement -> RETURN expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5430,38 +5439,38 @@ state 94 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 118 (statement -> RETURN expression .) ] - ! PLUS [ reduce using rule 118 (statement -> RETURN expression .) ] - ! MOD [ reduce using rule 118 (statement -> RETURN expression .) ] - ! DIV [ reduce using rule 118 (statement -> RETURN expression .) ] - ! POINTER [ reduce using rule 118 (statement -> RETURN expression .) ] + ! MINUS [ reduce using rule 119 (statement -> RETURN expression .) ] + ! PLUS [ reduce using rule 119 (statement -> RETURN expression .) ] + ! MOD [ reduce using rule 119 (statement -> RETURN expression .) ] + ! DIV [ reduce using rule 119 (statement -> RETURN expression .) ] + ! POINTER [ reduce using rule 119 (statement -> RETURN expression .) ] state 95 - (119) statement -> OPENFILE expression . FOR READ - (120) statement -> OPENFILE expression . FOR WRITE - (121) statement -> OPENFILE expression . FOR APPEND - (122) statement -> OPENFILE expression . FOR RANDOM - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - FOR shift and go to state 161 + (120) statement -> OPENFILE expression . FOR READ + (121) statement -> OPENFILE expression . FOR WRITE + (122) statement -> OPENFILE expression . FOR APPEND + (123) statement -> OPENFILE expression . FOR RANDOM + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + FOR shift and go to state 162 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5483,27 +5492,27 @@ state 95 state 96 - (123) statement -> READFILE expression . COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> READFILE expression . COMMA ID - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - COMMA shift and go to state 162 + (124) statement -> READFILE expression . COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> READFILE expression . COMMA ID + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + COMMA shift and go to state 163 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5525,26 +5534,26 @@ state 96 state 97 - (125) statement -> WRITEFILE expression . COMMA expression - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (126) statement -> WRITEFILE expression . COMMA expression + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER - COMMA shift and go to state 163 + COMMA shift and go to state 164 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5566,78 +5575,78 @@ state 97 state 98 - (126) statement -> CLOSEFILE expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (127) statement -> CLOSEFILE expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 126 (statement -> CLOSEFILE expression .) - DECLARE reduce using rule 126 (statement -> CLOSEFILE expression .) - PUBLIC reduce using rule 126 (statement -> CLOSEFILE expression .) - PRIVATE reduce using rule 126 (statement -> CLOSEFILE expression .) - CONSTANT reduce using rule 126 (statement -> CLOSEFILE expression .) - INPUT reduce using rule 126 (statement -> CLOSEFILE expression .) - OUTPUT reduce using rule 126 (statement -> CLOSEFILE expression .) - _OUTPUT reduce using rule 126 (statement -> CLOSEFILE expression .) - IF reduce using rule 126 (statement -> CLOSEFILE expression .) - CASE reduce using rule 126 (statement -> CLOSEFILE expression .) - FOR reduce using rule 126 (statement -> CLOSEFILE expression .) - REPEAT reduce using rule 126 (statement -> CLOSEFILE expression .) - WHILE reduce using rule 126 (statement -> CLOSEFILE expression .) - PROCEDURE reduce using rule 126 (statement -> CLOSEFILE expression .) - CALL reduce using rule 126 (statement -> CLOSEFILE expression .) - FUNCTION reduce using rule 126 (statement -> CLOSEFILE expression .) - RETURN reduce using rule 126 (statement -> CLOSEFILE expression .) - OPENFILE reduce using rule 126 (statement -> CLOSEFILE expression .) - READFILE reduce using rule 126 (statement -> CLOSEFILE expression .) - WRITEFILE reduce using rule 126 (statement -> CLOSEFILE expression .) - CLOSEFILE reduce using rule 126 (statement -> CLOSEFILE expression .) - SEEK reduce using rule 126 (statement -> CLOSEFILE expression .) - TYPE reduce using rule 126 (statement -> CLOSEFILE expression .) - PASS reduce using rule 126 (statement -> CLOSEFILE expression .) - IMPORT reduce using rule 126 (statement -> CLOSEFILE expression .) - CLASS reduce using rule 126 (statement -> CLOSEFILE expression .) - LEFT_SQUARE reduce using rule 126 (statement -> CLOSEFILE expression .) - ID reduce using rule 126 (statement -> CLOSEFILE expression .) - NOT reduce using rule 126 (statement -> CLOSEFILE expression .) - LEFT_PAREN reduce using rule 126 (statement -> CLOSEFILE expression .) - DATE reduce using rule 126 (statement -> CLOSEFILE expression .) - BOOLEAN reduce using rule 126 (statement -> CLOSEFILE expression .) - CHAR reduce using rule 126 (statement -> CLOSEFILE expression .) - STRING reduce using rule 126 (statement -> CLOSEFILE expression .) - REAL reduce using rule 126 (statement -> CLOSEFILE expression .) - INTEGER reduce using rule 126 (statement -> CLOSEFILE expression .) - NEW reduce using rule 126 (statement -> CLOSEFILE expression .) - $end reduce using rule 126 (statement -> CLOSEFILE expression .) - UNTIL reduce using rule 126 (statement -> CLOSEFILE expression .) - ENDWHILE reduce using rule 126 (statement -> CLOSEFILE expression .) - ENDTYPE reduce using rule 126 (statement -> CLOSEFILE expression .) - ENDCLASS reduce using rule 126 (statement -> CLOSEFILE expression .) - ELSE reduce using rule 126 (statement -> CLOSEFILE expression .) - ENDIF reduce using rule 126 (statement -> CLOSEFILE expression .) - ENDPROCEDURE reduce using rule 126 (statement -> CLOSEFILE expression .) - SEMICOLON reduce using rule 126 (statement -> CLOSEFILE expression .) - NEXT reduce using rule 126 (statement -> CLOSEFILE expression .) - ENDFUNCTION reduce using rule 126 (statement -> CLOSEFILE expression .) + DELETE reduce using rule 127 (statement -> CLOSEFILE expression .) + DECLARE reduce using rule 127 (statement -> CLOSEFILE expression .) + PUBLIC reduce using rule 127 (statement -> CLOSEFILE expression .) + PRIVATE reduce using rule 127 (statement -> CLOSEFILE expression .) + CONSTANT reduce using rule 127 (statement -> CLOSEFILE expression .) + INPUT reduce using rule 127 (statement -> CLOSEFILE expression .) + OUTPUT reduce using rule 127 (statement -> CLOSEFILE expression .) + _OUTPUT reduce using rule 127 (statement -> CLOSEFILE expression .) + IF reduce using rule 127 (statement -> CLOSEFILE expression .) + CASE reduce using rule 127 (statement -> CLOSEFILE expression .) + FOR reduce using rule 127 (statement -> CLOSEFILE expression .) + REPEAT reduce using rule 127 (statement -> CLOSEFILE expression .) + WHILE reduce using rule 127 (statement -> CLOSEFILE expression .) + PROCEDURE reduce using rule 127 (statement -> CLOSEFILE expression .) + CALL reduce using rule 127 (statement -> CLOSEFILE expression .) + FUNCTION reduce using rule 127 (statement -> CLOSEFILE expression .) + RETURN reduce using rule 127 (statement -> CLOSEFILE expression .) + OPENFILE reduce using rule 127 (statement -> CLOSEFILE expression .) + READFILE reduce using rule 127 (statement -> CLOSEFILE expression .) + WRITEFILE reduce using rule 127 (statement -> CLOSEFILE expression .) + CLOSEFILE reduce using rule 127 (statement -> CLOSEFILE expression .) + SEEK reduce using rule 127 (statement -> CLOSEFILE expression .) + TYPE reduce using rule 127 (statement -> CLOSEFILE expression .) + PASS reduce using rule 127 (statement -> CLOSEFILE expression .) + IMPORT reduce using rule 127 (statement -> CLOSEFILE expression .) + CLASS reduce using rule 127 (statement -> CLOSEFILE expression .) + LEFT_SQUARE reduce using rule 127 (statement -> CLOSEFILE expression .) + ID reduce using rule 127 (statement -> CLOSEFILE expression .) + NOT reduce using rule 127 (statement -> CLOSEFILE expression .) + LEFT_PAREN reduce using rule 127 (statement -> CLOSEFILE expression .) + DATE reduce using rule 127 (statement -> CLOSEFILE expression .) + BOOLEAN reduce using rule 127 (statement -> CLOSEFILE expression .) + CHAR reduce using rule 127 (statement -> CLOSEFILE expression .) + STRING reduce using rule 127 (statement -> CLOSEFILE expression .) + REAL reduce using rule 127 (statement -> CLOSEFILE expression .) + INTEGER reduce using rule 127 (statement -> CLOSEFILE expression .) + NEW reduce using rule 127 (statement -> CLOSEFILE expression .) + $end reduce using rule 127 (statement -> CLOSEFILE expression .) + UNTIL reduce using rule 127 (statement -> CLOSEFILE expression .) + ENDWHILE reduce using rule 127 (statement -> CLOSEFILE expression .) + ENDTYPE reduce using rule 127 (statement -> CLOSEFILE expression .) + ENDCLASS reduce using rule 127 (statement -> CLOSEFILE expression .) + ELSE reduce using rule 127 (statement -> CLOSEFILE expression .) + ENDIF reduce using rule 127 (statement -> CLOSEFILE expression .) + ENDPROCEDURE reduce using rule 127 (statement -> CLOSEFILE expression .) + SEMICOLON reduce using rule 127 (statement -> CLOSEFILE expression .) + NEXT reduce using rule 127 (statement -> CLOSEFILE expression .) + ENDFUNCTION reduce using rule 127 (statement -> CLOSEFILE expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5656,35 +5665,35 @@ state 98 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 126 (statement -> CLOSEFILE expression .) ] - ! PLUS [ reduce using rule 126 (statement -> CLOSEFILE expression .) ] - ! MOD [ reduce using rule 126 (statement -> CLOSEFILE expression .) ] - ! DIV [ reduce using rule 126 (statement -> CLOSEFILE expression .) ] - ! POINTER [ reduce using rule 126 (statement -> CLOSEFILE expression .) ] + ! MINUS [ reduce using rule 127 (statement -> CLOSEFILE expression .) ] + ! PLUS [ reduce using rule 127 (statement -> CLOSEFILE expression .) ] + ! MOD [ reduce using rule 127 (statement -> CLOSEFILE expression .) ] + ! DIV [ reduce using rule 127 (statement -> CLOSEFILE expression .) ] + ! POINTER [ reduce using rule 127 (statement -> CLOSEFILE expression .) ] state 99 - (127) statement -> SEEK expression . COMMA expression - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - COMMA shift and go to state 164 + (128) statement -> SEEK expression . COMMA expression + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + COMMA shift and go to state 165 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5706,10 +5715,10 @@ state 99 state 100 - (128) statement -> TYPE ID . statements ENDTYPE - (130) statement -> TYPE ID . EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> TYPE ID . EQUAL POINTER ID - (142) statement -> TYPE ID . EQUAL SET OF ID + (129) statement -> TYPE ID . statements ENDTYPE + (131) statement -> TYPE ID . EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> TYPE ID . EQUAL POINTER ID + (143) statement -> TYPE ID . EQUAL SET OF ID (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -5717,112 +5726,113 @@ state 100 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - EQUAL shift and go to state 166 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + EQUAL shift and go to state 167 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -5866,30 +5876,30 @@ state 100 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 165 + statements shift and go to state 166 statement shift and go to state 2 expression shift and go to state 9 state 101 - (133) expression -> POINTER expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (134) expression -> POINTER expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for OR resolved as shift ! shift/reduce conflict for AND resolved as shift @@ -5908,64 +5918,64 @@ state 101 ! shift/reduce conflict for CONNECT resolved as shift ! shift/reduce conflict for DOT resolved as shift ! shift/reduce conflict for POINTER resolved as shift - ASSIGN reduce using rule 133 (expression -> POINTER expression .) - DELETE reduce using rule 133 (expression -> POINTER expression .) - DECLARE reduce using rule 133 (expression -> POINTER expression .) - PUBLIC reduce using rule 133 (expression -> POINTER expression .) - PRIVATE reduce using rule 133 (expression -> POINTER expression .) - CONSTANT reduce using rule 133 (expression -> POINTER expression .) - INPUT reduce using rule 133 (expression -> POINTER expression .) - OUTPUT reduce using rule 133 (expression -> POINTER expression .) - _OUTPUT reduce using rule 133 (expression -> POINTER expression .) - IF reduce using rule 133 (expression -> POINTER expression .) - CASE reduce using rule 133 (expression -> POINTER expression .) - FOR reduce using rule 133 (expression -> POINTER expression .) - REPEAT reduce using rule 133 (expression -> POINTER expression .) - WHILE reduce using rule 133 (expression -> POINTER expression .) - PROCEDURE reduce using rule 133 (expression -> POINTER expression .) - CALL reduce using rule 133 (expression -> POINTER expression .) - FUNCTION reduce using rule 133 (expression -> POINTER expression .) - RETURN reduce using rule 133 (expression -> POINTER expression .) - OPENFILE reduce using rule 133 (expression -> POINTER expression .) - READFILE reduce using rule 133 (expression -> POINTER expression .) - WRITEFILE reduce using rule 133 (expression -> POINTER expression .) - CLOSEFILE reduce using rule 133 (expression -> POINTER expression .) - SEEK reduce using rule 133 (expression -> POINTER expression .) - TYPE reduce using rule 133 (expression -> POINTER expression .) - PASS reduce using rule 133 (expression -> POINTER expression .) - IMPORT reduce using rule 133 (expression -> POINTER expression .) - CLASS reduce using rule 133 (expression -> POINTER expression .) - LEFT_SQUARE reduce using rule 133 (expression -> POINTER expression .) - ID reduce using rule 133 (expression -> POINTER expression .) - NOT reduce using rule 133 (expression -> POINTER expression .) - LEFT_PAREN reduce using rule 133 (expression -> POINTER expression .) - DATE reduce using rule 133 (expression -> POINTER expression .) - BOOLEAN reduce using rule 133 (expression -> POINTER expression .) - CHAR reduce using rule 133 (expression -> POINTER expression .) - STRING reduce using rule 133 (expression -> POINTER expression .) - REAL reduce using rule 133 (expression -> POINTER expression .) - INTEGER reduce using rule 133 (expression -> POINTER expression .) - NEW reduce using rule 133 (expression -> POINTER expression .) - $end reduce using rule 133 (expression -> POINTER expression .) - RIGHT_SQUARE reduce using rule 133 (expression -> POINTER expression .) - COMMA reduce using rule 133 (expression -> POINTER expression .) - UNTIL reduce using rule 133 (expression -> POINTER expression .) - ENDWHILE reduce using rule 133 (expression -> POINTER expression .) - ENDTYPE reduce using rule 133 (expression -> POINTER expression .) - ENDCLASS reduce using rule 133 (expression -> POINTER expression .) - ELSE reduce using rule 133 (expression -> POINTER expression .) - ENDIF reduce using rule 133 (expression -> POINTER expression .) - ENDPROCEDURE reduce using rule 133 (expression -> POINTER expression .) - SEMICOLON reduce using rule 133 (expression -> POINTER expression .) - NEXT reduce using rule 133 (expression -> POINTER expression .) - ENDFUNCTION reduce using rule 133 (expression -> POINTER expression .) - THEN reduce using rule 133 (expression -> POINTER expression .) - DO reduce using rule 133 (expression -> POINTER expression .) - RIGHT_PAREN reduce using rule 133 (expression -> POINTER expression .) - OTHERWISE reduce using rule 133 (expression -> POINTER expression .) - TO reduce using rule 133 (expression -> POINTER expression .) - COLON reduce using rule 133 (expression -> POINTER expression .) - STEP reduce using rule 133 (expression -> POINTER expression .) + ASSIGN reduce using rule 134 (expression -> POINTER expression .) + DELETE reduce using rule 134 (expression -> POINTER expression .) + DECLARE reduce using rule 134 (expression -> POINTER expression .) + PUBLIC reduce using rule 134 (expression -> POINTER expression .) + PRIVATE reduce using rule 134 (expression -> POINTER expression .) + CONSTANT reduce using rule 134 (expression -> POINTER expression .) + INPUT reduce using rule 134 (expression -> POINTER expression .) + OUTPUT reduce using rule 134 (expression -> POINTER expression .) + _OUTPUT reduce using rule 134 (expression -> POINTER expression .) + IF reduce using rule 134 (expression -> POINTER expression .) + CASE reduce using rule 134 (expression -> POINTER expression .) + FOR reduce using rule 134 (expression -> POINTER expression .) + REPEAT reduce using rule 134 (expression -> POINTER expression .) + WHILE reduce using rule 134 (expression -> POINTER expression .) + PROCEDURE reduce using rule 134 (expression -> POINTER expression .) + CALL reduce using rule 134 (expression -> POINTER expression .) + FUNCTION reduce using rule 134 (expression -> POINTER expression .) + RETURN reduce using rule 134 (expression -> POINTER expression .) + OPENFILE reduce using rule 134 (expression -> POINTER expression .) + READFILE reduce using rule 134 (expression -> POINTER expression .) + WRITEFILE reduce using rule 134 (expression -> POINTER expression .) + CLOSEFILE reduce using rule 134 (expression -> POINTER expression .) + SEEK reduce using rule 134 (expression -> POINTER expression .) + TYPE reduce using rule 134 (expression -> POINTER expression .) + PASS reduce using rule 134 (expression -> POINTER expression .) + IMPORT reduce using rule 134 (expression -> POINTER expression .) + CLASS reduce using rule 134 (expression -> POINTER expression .) + LEFT_SQUARE reduce using rule 134 (expression -> POINTER expression .) + ID reduce using rule 134 (expression -> POINTER expression .) + NOT reduce using rule 134 (expression -> POINTER expression .) + LEFT_PAREN reduce using rule 134 (expression -> POINTER expression .) + DATE reduce using rule 134 (expression -> POINTER expression .) + BOOLEAN reduce using rule 134 (expression -> POINTER expression .) + CHAR reduce using rule 134 (expression -> POINTER expression .) + STRING reduce using rule 134 (expression -> POINTER expression .) + REAL reduce using rule 134 (expression -> POINTER expression .) + INTEGER reduce using rule 134 (expression -> POINTER expression .) + NEW reduce using rule 134 (expression -> POINTER expression .) + $end reduce using rule 134 (expression -> POINTER expression .) + RIGHT_SQUARE reduce using rule 134 (expression -> POINTER expression .) + COMMA reduce using rule 134 (expression -> POINTER expression .) + UNTIL reduce using rule 134 (expression -> POINTER expression .) + ENDWHILE reduce using rule 134 (expression -> POINTER expression .) + ENDTYPE reduce using rule 134 (expression -> POINTER expression .) + ENDCLASS reduce using rule 134 (expression -> POINTER expression .) + ELSE reduce using rule 134 (expression -> POINTER expression .) + ENDIF reduce using rule 134 (expression -> POINTER expression .) + ENDPROCEDURE reduce using rule 134 (expression -> POINTER expression .) + SEMICOLON reduce using rule 134 (expression -> POINTER expression .) + NEXT reduce using rule 134 (expression -> POINTER expression .) + ENDFUNCTION reduce using rule 134 (expression -> POINTER expression .) + THEN reduce using rule 134 (expression -> POINTER expression .) + DO reduce using rule 134 (expression -> POINTER expression .) + RIGHT_PAREN reduce using rule 134 (expression -> POINTER expression .) + OTHERWISE reduce using rule 134 (expression -> POINTER expression .) + TO reduce using rule 134 (expression -> POINTER expression .) + COLON reduce using rule 134 (expression -> POINTER expression .) + STEP reduce using rule 134 (expression -> POINTER expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -5984,99 +5994,99 @@ state 101 DOT shift and go to state 74 POINTER shift and go to state 75 - ! OR [ reduce using rule 133 (expression -> POINTER expression .) ] - ! AND [ reduce using rule 133 (expression -> POINTER expression .) ] - ! EQUAL [ reduce using rule 133 (expression -> POINTER expression .) ] - ! NOT_EQUAL [ reduce using rule 133 (expression -> POINTER expression .) ] - ! LESS [ reduce using rule 133 (expression -> POINTER expression .) ] - ! GREATER [ reduce using rule 133 (expression -> POINTER expression .) ] - ! LESS_EQUAL [ reduce using rule 133 (expression -> POINTER expression .) ] - ! GREATER_EQUAL [ reduce using rule 133 (expression -> POINTER expression .) ] - ! MOD [ reduce using rule 133 (expression -> POINTER expression .) ] - ! DIV [ reduce using rule 133 (expression -> POINTER expression .) ] - ! MUL [ reduce using rule 133 (expression -> POINTER expression .) ] - ! N_DIV [ reduce using rule 133 (expression -> POINTER expression .) ] - ! PLUS [ reduce using rule 133 (expression -> POINTER expression .) ] - ! MINUS [ reduce using rule 133 (expression -> POINTER expression .) ] - ! CONNECT [ reduce using rule 133 (expression -> POINTER expression .) ] - ! DOT [ reduce using rule 133 (expression -> POINTER expression .) ] - ! POINTER [ reduce using rule 133 (expression -> POINTER expression .) ] + ! OR [ reduce using rule 134 (expression -> POINTER expression .) ] + ! AND [ reduce using rule 134 (expression -> POINTER expression .) ] + ! EQUAL [ reduce using rule 134 (expression -> POINTER expression .) ] + ! NOT_EQUAL [ reduce using rule 134 (expression -> POINTER expression .) ] + ! LESS [ reduce using rule 134 (expression -> POINTER expression .) ] + ! GREATER [ reduce using rule 134 (expression -> POINTER expression .) ] + ! LESS_EQUAL [ reduce using rule 134 (expression -> POINTER expression .) ] + ! GREATER_EQUAL [ reduce using rule 134 (expression -> POINTER expression .) ] + ! MOD [ reduce using rule 134 (expression -> POINTER expression .) ] + ! DIV [ reduce using rule 134 (expression -> POINTER expression .) ] + ! MUL [ reduce using rule 134 (expression -> POINTER expression .) ] + ! N_DIV [ reduce using rule 134 (expression -> POINTER expression .) ] + ! PLUS [ reduce using rule 134 (expression -> POINTER expression .) ] + ! MINUS [ reduce using rule 134 (expression -> POINTER expression .) ] + ! CONNECT [ reduce using rule 134 (expression -> POINTER expression .) ] + ! DOT [ reduce using rule 134 (expression -> POINTER expression .) ] + ! POINTER [ reduce using rule 134 (expression -> POINTER expression .) ] state 102 - (137) statement -> IMPORT expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (138) statement -> IMPORT expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 137 (statement -> IMPORT expression .) - DECLARE reduce using rule 137 (statement -> IMPORT expression .) - PUBLIC reduce using rule 137 (statement -> IMPORT expression .) - PRIVATE reduce using rule 137 (statement -> IMPORT expression .) - CONSTANT reduce using rule 137 (statement -> IMPORT expression .) - INPUT reduce using rule 137 (statement -> IMPORT expression .) - OUTPUT reduce using rule 137 (statement -> IMPORT expression .) - _OUTPUT reduce using rule 137 (statement -> IMPORT expression .) - IF reduce using rule 137 (statement -> IMPORT expression .) - CASE reduce using rule 137 (statement -> IMPORT expression .) - FOR reduce using rule 137 (statement -> IMPORT expression .) - REPEAT reduce using rule 137 (statement -> IMPORT expression .) - WHILE reduce using rule 137 (statement -> IMPORT expression .) - PROCEDURE reduce using rule 137 (statement -> IMPORT expression .) - CALL reduce using rule 137 (statement -> IMPORT expression .) - FUNCTION reduce using rule 137 (statement -> IMPORT expression .) - RETURN reduce using rule 137 (statement -> IMPORT expression .) - OPENFILE reduce using rule 137 (statement -> IMPORT expression .) - READFILE reduce using rule 137 (statement -> IMPORT expression .) - WRITEFILE reduce using rule 137 (statement -> IMPORT expression .) - CLOSEFILE reduce using rule 137 (statement -> IMPORT expression .) - SEEK reduce using rule 137 (statement -> IMPORT expression .) - TYPE reduce using rule 137 (statement -> IMPORT expression .) - PASS reduce using rule 137 (statement -> IMPORT expression .) - IMPORT reduce using rule 137 (statement -> IMPORT expression .) - CLASS reduce using rule 137 (statement -> IMPORT expression .) - LEFT_SQUARE reduce using rule 137 (statement -> IMPORT expression .) - ID reduce using rule 137 (statement -> IMPORT expression .) - NOT reduce using rule 137 (statement -> IMPORT expression .) - LEFT_PAREN reduce using rule 137 (statement -> IMPORT expression .) - DATE reduce using rule 137 (statement -> IMPORT expression .) - BOOLEAN reduce using rule 137 (statement -> IMPORT expression .) - CHAR reduce using rule 137 (statement -> IMPORT expression .) - STRING reduce using rule 137 (statement -> IMPORT expression .) - REAL reduce using rule 137 (statement -> IMPORT expression .) - INTEGER reduce using rule 137 (statement -> IMPORT expression .) - NEW reduce using rule 137 (statement -> IMPORT expression .) - $end reduce using rule 137 (statement -> IMPORT expression .) - UNTIL reduce using rule 137 (statement -> IMPORT expression .) - ENDWHILE reduce using rule 137 (statement -> IMPORT expression .) - ENDTYPE reduce using rule 137 (statement -> IMPORT expression .) - ENDCLASS reduce using rule 137 (statement -> IMPORT expression .) - ELSE reduce using rule 137 (statement -> IMPORT expression .) - ENDIF reduce using rule 137 (statement -> IMPORT expression .) - ENDPROCEDURE reduce using rule 137 (statement -> IMPORT expression .) - SEMICOLON reduce using rule 137 (statement -> IMPORT expression .) - NEXT reduce using rule 137 (statement -> IMPORT expression .) - ENDFUNCTION reduce using rule 137 (statement -> IMPORT expression .) + DELETE reduce using rule 138 (statement -> IMPORT expression .) + DECLARE reduce using rule 138 (statement -> IMPORT expression .) + PUBLIC reduce using rule 138 (statement -> IMPORT expression .) + PRIVATE reduce using rule 138 (statement -> IMPORT expression .) + CONSTANT reduce using rule 138 (statement -> IMPORT expression .) + INPUT reduce using rule 138 (statement -> IMPORT expression .) + OUTPUT reduce using rule 138 (statement -> IMPORT expression .) + _OUTPUT reduce using rule 138 (statement -> IMPORT expression .) + IF reduce using rule 138 (statement -> IMPORT expression .) + CASE reduce using rule 138 (statement -> IMPORT expression .) + FOR reduce using rule 138 (statement -> IMPORT expression .) + REPEAT reduce using rule 138 (statement -> IMPORT expression .) + WHILE reduce using rule 138 (statement -> IMPORT expression .) + PROCEDURE reduce using rule 138 (statement -> IMPORT expression .) + CALL reduce using rule 138 (statement -> IMPORT expression .) + FUNCTION reduce using rule 138 (statement -> IMPORT expression .) + RETURN reduce using rule 138 (statement -> IMPORT expression .) + OPENFILE reduce using rule 138 (statement -> IMPORT expression .) + READFILE reduce using rule 138 (statement -> IMPORT expression .) + WRITEFILE reduce using rule 138 (statement -> IMPORT expression .) + CLOSEFILE reduce using rule 138 (statement -> IMPORT expression .) + SEEK reduce using rule 138 (statement -> IMPORT expression .) + TYPE reduce using rule 138 (statement -> IMPORT expression .) + PASS reduce using rule 138 (statement -> IMPORT expression .) + IMPORT reduce using rule 138 (statement -> IMPORT expression .) + CLASS reduce using rule 138 (statement -> IMPORT expression .) + LEFT_SQUARE reduce using rule 138 (statement -> IMPORT expression .) + ID reduce using rule 138 (statement -> IMPORT expression .) + NOT reduce using rule 138 (statement -> IMPORT expression .) + LEFT_PAREN reduce using rule 138 (statement -> IMPORT expression .) + DATE reduce using rule 138 (statement -> IMPORT expression .) + BOOLEAN reduce using rule 138 (statement -> IMPORT expression .) + CHAR reduce using rule 138 (statement -> IMPORT expression .) + STRING reduce using rule 138 (statement -> IMPORT expression .) + REAL reduce using rule 138 (statement -> IMPORT expression .) + INTEGER reduce using rule 138 (statement -> IMPORT expression .) + NEW reduce using rule 138 (statement -> IMPORT expression .) + $end reduce using rule 138 (statement -> IMPORT expression .) + UNTIL reduce using rule 138 (statement -> IMPORT expression .) + ENDWHILE reduce using rule 138 (statement -> IMPORT expression .) + ENDTYPE reduce using rule 138 (statement -> IMPORT expression .) + ENDCLASS reduce using rule 138 (statement -> IMPORT expression .) + ELSE reduce using rule 138 (statement -> IMPORT expression .) + ENDIF reduce using rule 138 (statement -> IMPORT expression .) + ENDPROCEDURE reduce using rule 138 (statement -> IMPORT expression .) + SEMICOLON reduce using rule 138 (statement -> IMPORT expression .) + NEXT reduce using rule 138 (statement -> IMPORT expression .) + ENDFUNCTION reduce using rule 138 (statement -> IMPORT expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -6095,17 +6105,17 @@ state 102 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 137 (statement -> IMPORT expression .) ] - ! PLUS [ reduce using rule 137 (statement -> IMPORT expression .) ] - ! MOD [ reduce using rule 137 (statement -> IMPORT expression .) ] - ! DIV [ reduce using rule 137 (statement -> IMPORT expression .) ] - ! POINTER [ reduce using rule 137 (statement -> IMPORT expression .) ] + ! MINUS [ reduce using rule 138 (statement -> IMPORT expression .) ] + ! PLUS [ reduce using rule 138 (statement -> IMPORT expression .) ] + ! MOD [ reduce using rule 138 (statement -> IMPORT expression .) ] + ! DIV [ reduce using rule 138 (statement -> IMPORT expression .) ] + ! POINTER [ reduce using rule 138 (statement -> IMPORT expression .) ] state 103 - (138) statement -> CLASS ID . statements ENDCLASS - (139) statement -> CLASS ID . INHERITS ID statements ENDCLASS + (139) statement -> CLASS ID . statements ENDCLASS + (140) statement -> CLASS ID . INHERITS ID statements ENDCLASS (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -6113,112 +6123,113 @@ state 103 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - INHERITS shift and go to state 168 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + INHERITS shift and go to state 169 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -6262,94 +6273,94 @@ state 103 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 167 + statements shift and go to state 168 statement shift and go to state 2 expression shift and go to state 9 state 104 - (46) expression -> NOT expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 46 (expression -> NOT expression .) - OR reduce using rule 46 (expression -> NOT expression .) - AND reduce using rule 46 (expression -> NOT expression .) - CONNECT reduce using rule 46 (expression -> NOT expression .) - DOT reduce using rule 46 (expression -> NOT expression .) - POINTER reduce using rule 46 (expression -> NOT expression .) - DELETE reduce using rule 46 (expression -> NOT expression .) - DECLARE reduce using rule 46 (expression -> NOT expression .) - PUBLIC reduce using rule 46 (expression -> NOT expression .) - PRIVATE reduce using rule 46 (expression -> NOT expression .) - CONSTANT reduce using rule 46 (expression -> NOT expression .) - INPUT reduce using rule 46 (expression -> NOT expression .) - OUTPUT reduce using rule 46 (expression -> NOT expression .) - _OUTPUT reduce using rule 46 (expression -> NOT expression .) - IF reduce using rule 46 (expression -> NOT expression .) - CASE reduce using rule 46 (expression -> NOT expression .) - FOR reduce using rule 46 (expression -> NOT expression .) - REPEAT reduce using rule 46 (expression -> NOT expression .) - WHILE reduce using rule 46 (expression -> NOT expression .) - PROCEDURE reduce using rule 46 (expression -> NOT expression .) - CALL reduce using rule 46 (expression -> NOT expression .) - FUNCTION reduce using rule 46 (expression -> NOT expression .) - RETURN reduce using rule 46 (expression -> NOT expression .) - OPENFILE reduce using rule 46 (expression -> NOT expression .) - READFILE reduce using rule 46 (expression -> NOT expression .) - WRITEFILE reduce using rule 46 (expression -> NOT expression .) - CLOSEFILE reduce using rule 46 (expression -> NOT expression .) - SEEK reduce using rule 46 (expression -> NOT expression .) - TYPE reduce using rule 46 (expression -> NOT expression .) - PASS reduce using rule 46 (expression -> NOT expression .) - IMPORT reduce using rule 46 (expression -> NOT expression .) - CLASS reduce using rule 46 (expression -> NOT expression .) - LEFT_SQUARE reduce using rule 46 (expression -> NOT expression .) - ID reduce using rule 46 (expression -> NOT expression .) - NOT reduce using rule 46 (expression -> NOT expression .) - LEFT_PAREN reduce using rule 46 (expression -> NOT expression .) - DATE reduce using rule 46 (expression -> NOT expression .) - BOOLEAN reduce using rule 46 (expression -> NOT expression .) - CHAR reduce using rule 46 (expression -> NOT expression .) - STRING reduce using rule 46 (expression -> NOT expression .) - REAL reduce using rule 46 (expression -> NOT expression .) - INTEGER reduce using rule 46 (expression -> NOT expression .) - NEW reduce using rule 46 (expression -> NOT expression .) - $end reduce using rule 46 (expression -> NOT expression .) - RIGHT_SQUARE reduce using rule 46 (expression -> NOT expression .) - COMMA reduce using rule 46 (expression -> NOT expression .) - UNTIL reduce using rule 46 (expression -> NOT expression .) - ENDWHILE reduce using rule 46 (expression -> NOT expression .) - ENDTYPE reduce using rule 46 (expression -> NOT expression .) - ENDCLASS reduce using rule 46 (expression -> NOT expression .) - ELSE reduce using rule 46 (expression -> NOT expression .) - ENDIF reduce using rule 46 (expression -> NOT expression .) - ENDPROCEDURE reduce using rule 46 (expression -> NOT expression .) - SEMICOLON reduce using rule 46 (expression -> NOT expression .) - NEXT reduce using rule 46 (expression -> NOT expression .) - ENDFUNCTION reduce using rule 46 (expression -> NOT expression .) - THEN reduce using rule 46 (expression -> NOT expression .) - DO reduce using rule 46 (expression -> NOT expression .) - RIGHT_PAREN reduce using rule 46 (expression -> NOT expression .) - OTHERWISE reduce using rule 46 (expression -> NOT expression .) - TO reduce using rule 46 (expression -> NOT expression .) - COLON reduce using rule 46 (expression -> NOT expression .) - STEP reduce using rule 46 (expression -> NOT expression .) + (47) expression -> NOT expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 47 (expression -> NOT expression .) + OR reduce using rule 47 (expression -> NOT expression .) + AND reduce using rule 47 (expression -> NOT expression .) + CONNECT reduce using rule 47 (expression -> NOT expression .) + DOT reduce using rule 47 (expression -> NOT expression .) + POINTER reduce using rule 47 (expression -> NOT expression .) + DELETE reduce using rule 47 (expression -> NOT expression .) + DECLARE reduce using rule 47 (expression -> NOT expression .) + PUBLIC reduce using rule 47 (expression -> NOT expression .) + PRIVATE reduce using rule 47 (expression -> NOT expression .) + CONSTANT reduce using rule 47 (expression -> NOT expression .) + INPUT reduce using rule 47 (expression -> NOT expression .) + OUTPUT reduce using rule 47 (expression -> NOT expression .) + _OUTPUT reduce using rule 47 (expression -> NOT expression .) + IF reduce using rule 47 (expression -> NOT expression .) + CASE reduce using rule 47 (expression -> NOT expression .) + FOR reduce using rule 47 (expression -> NOT expression .) + REPEAT reduce using rule 47 (expression -> NOT expression .) + WHILE reduce using rule 47 (expression -> NOT expression .) + PROCEDURE reduce using rule 47 (expression -> NOT expression .) + CALL reduce using rule 47 (expression -> NOT expression .) + FUNCTION reduce using rule 47 (expression -> NOT expression .) + RETURN reduce using rule 47 (expression -> NOT expression .) + OPENFILE reduce using rule 47 (expression -> NOT expression .) + READFILE reduce using rule 47 (expression -> NOT expression .) + WRITEFILE reduce using rule 47 (expression -> NOT expression .) + CLOSEFILE reduce using rule 47 (expression -> NOT expression .) + SEEK reduce using rule 47 (expression -> NOT expression .) + TYPE reduce using rule 47 (expression -> NOT expression .) + PASS reduce using rule 47 (expression -> NOT expression .) + IMPORT reduce using rule 47 (expression -> NOT expression .) + CLASS reduce using rule 47 (expression -> NOT expression .) + LEFT_SQUARE reduce using rule 47 (expression -> NOT expression .) + ID reduce using rule 47 (expression -> NOT expression .) + NOT reduce using rule 47 (expression -> NOT expression .) + LEFT_PAREN reduce using rule 47 (expression -> NOT expression .) + DATE reduce using rule 47 (expression -> NOT expression .) + BOOLEAN reduce using rule 47 (expression -> NOT expression .) + CHAR reduce using rule 47 (expression -> NOT expression .) + STRING reduce using rule 47 (expression -> NOT expression .) + REAL reduce using rule 47 (expression -> NOT expression .) + INTEGER reduce using rule 47 (expression -> NOT expression .) + NEW reduce using rule 47 (expression -> NOT expression .) + $end reduce using rule 47 (expression -> NOT expression .) + RIGHT_SQUARE reduce using rule 47 (expression -> NOT expression .) + COMMA reduce using rule 47 (expression -> NOT expression .) + UNTIL reduce using rule 47 (expression -> NOT expression .) + ENDWHILE reduce using rule 47 (expression -> NOT expression .) + ENDTYPE reduce using rule 47 (expression -> NOT expression .) + ENDCLASS reduce using rule 47 (expression -> NOT expression .) + ELSE reduce using rule 47 (expression -> NOT expression .) + ENDIF reduce using rule 47 (expression -> NOT expression .) + ENDPROCEDURE reduce using rule 47 (expression -> NOT expression .) + SEMICOLON reduce using rule 47 (expression -> NOT expression .) + NEXT reduce using rule 47 (expression -> NOT expression .) + ENDFUNCTION reduce using rule 47 (expression -> NOT expression .) + THEN reduce using rule 47 (expression -> NOT expression .) + DO reduce using rule 47 (expression -> NOT expression .) + RIGHT_PAREN reduce using rule 47 (expression -> NOT expression .) + OTHERWISE reduce using rule 47 (expression -> NOT expression .) + TO reduce using rule 47 (expression -> NOT expression .) + COLON reduce using rule 47 (expression -> NOT expression .) + STEP reduce using rule 47 (expression -> NOT expression .) EQUAL shift and go to state 61 NOT_EQUAL shift and go to state 62 LESS shift and go to state 63 @@ -6363,18 +6374,18 @@ state 104 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! EQUAL [ reduce using rule 46 (expression -> NOT expression .) ] - ! NOT_EQUAL [ reduce using rule 46 (expression -> NOT expression .) ] - ! LESS [ reduce using rule 46 (expression -> NOT expression .) ] - ! GREATER [ reduce using rule 46 (expression -> NOT expression .) ] - ! LESS_EQUAL [ reduce using rule 46 (expression -> NOT expression .) ] - ! GREATER_EQUAL [ reduce using rule 46 (expression -> NOT expression .) ] - ! MOD [ reduce using rule 46 (expression -> NOT expression .) ] - ! DIV [ reduce using rule 46 (expression -> NOT expression .) ] - ! MUL [ reduce using rule 46 (expression -> NOT expression .) ] - ! N_DIV [ reduce using rule 46 (expression -> NOT expression .) ] - ! PLUS [ reduce using rule 46 (expression -> NOT expression .) ] - ! MINUS [ reduce using rule 46 (expression -> NOT expression .) ] + ! EQUAL [ reduce using rule 47 (expression -> NOT expression .) ] + ! NOT_EQUAL [ reduce using rule 47 (expression -> NOT expression .) ] + ! LESS [ reduce using rule 47 (expression -> NOT expression .) ] + ! GREATER [ reduce using rule 47 (expression -> NOT expression .) ] + ! LESS_EQUAL [ reduce using rule 47 (expression -> NOT expression .) ] + ! GREATER_EQUAL [ reduce using rule 47 (expression -> NOT expression .) ] + ! MOD [ reduce using rule 47 (expression -> NOT expression .) ] + ! DIV [ reduce using rule 47 (expression -> NOT expression .) ] + ! MUL [ reduce using rule 47 (expression -> NOT expression .) ] + ! N_DIV [ reduce using rule 47 (expression -> NOT expression .) ] + ! PLUS [ reduce using rule 47 (expression -> NOT expression .) ] + ! MINUS [ reduce using rule 47 (expression -> NOT expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! CONNECT [ shift and go to state 73 ] @@ -6384,47 +6395,47 @@ state 104 state 105 - (115) expression -> MOD LEFT_PAREN . parameters RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> MOD LEFT_PAREN . parameters RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -6443,52 +6454,52 @@ state 105 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 169 + parameters shift and go to state 170 expression shift and go to state 113 state 106 - (116) expression -> DIV LEFT_PAREN . parameters RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> DIV LEFT_PAREN . parameters RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -6507,105 +6518,105 @@ state 106 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 170 + parameters shift and go to state 171 expression shift and go to state 113 state 107 - (57) expression -> MINUS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 57 (expression -> MINUS expression .) - OR reduce using rule 57 (expression -> MINUS expression .) - AND reduce using rule 57 (expression -> MINUS expression .) - EQUAL reduce using rule 57 (expression -> MINUS expression .) - NOT_EQUAL reduce using rule 57 (expression -> MINUS expression .) - LESS reduce using rule 57 (expression -> MINUS expression .) - GREATER reduce using rule 57 (expression -> MINUS expression .) - LESS_EQUAL reduce using rule 57 (expression -> MINUS expression .) - GREATER_EQUAL reduce using rule 57 (expression -> MINUS expression .) - MOD reduce using rule 57 (expression -> MINUS expression .) - DIV reduce using rule 57 (expression -> MINUS expression .) - MUL reduce using rule 57 (expression -> MINUS expression .) - N_DIV reduce using rule 57 (expression -> MINUS expression .) - PLUS reduce using rule 57 (expression -> MINUS expression .) - MINUS reduce using rule 57 (expression -> MINUS expression .) - CONNECT reduce using rule 57 (expression -> MINUS expression .) - DOT reduce using rule 57 (expression -> MINUS expression .) - POINTER reduce using rule 57 (expression -> MINUS expression .) - DELETE reduce using rule 57 (expression -> MINUS expression .) - DECLARE reduce using rule 57 (expression -> MINUS expression .) - PUBLIC reduce using rule 57 (expression -> MINUS expression .) - PRIVATE reduce using rule 57 (expression -> MINUS expression .) - CONSTANT reduce using rule 57 (expression -> MINUS expression .) - INPUT reduce using rule 57 (expression -> MINUS expression .) - OUTPUT reduce using rule 57 (expression -> MINUS expression .) - _OUTPUT reduce using rule 57 (expression -> MINUS expression .) - IF reduce using rule 57 (expression -> MINUS expression .) - CASE reduce using rule 57 (expression -> MINUS expression .) - FOR reduce using rule 57 (expression -> MINUS expression .) - REPEAT reduce using rule 57 (expression -> MINUS expression .) - WHILE reduce using rule 57 (expression -> MINUS expression .) - PROCEDURE reduce using rule 57 (expression -> MINUS expression .) - CALL reduce using rule 57 (expression -> MINUS expression .) - FUNCTION reduce using rule 57 (expression -> MINUS expression .) - RETURN reduce using rule 57 (expression -> MINUS expression .) - OPENFILE reduce using rule 57 (expression -> MINUS expression .) - READFILE reduce using rule 57 (expression -> MINUS expression .) - WRITEFILE reduce using rule 57 (expression -> MINUS expression .) - CLOSEFILE reduce using rule 57 (expression -> MINUS expression .) - SEEK reduce using rule 57 (expression -> MINUS expression .) - TYPE reduce using rule 57 (expression -> MINUS expression .) - PASS reduce using rule 57 (expression -> MINUS expression .) - IMPORT reduce using rule 57 (expression -> MINUS expression .) - CLASS reduce using rule 57 (expression -> MINUS expression .) - LEFT_SQUARE reduce using rule 57 (expression -> MINUS expression .) - ID reduce using rule 57 (expression -> MINUS expression .) - NOT reduce using rule 57 (expression -> MINUS expression .) - LEFT_PAREN reduce using rule 57 (expression -> MINUS expression .) - DATE reduce using rule 57 (expression -> MINUS expression .) - BOOLEAN reduce using rule 57 (expression -> MINUS expression .) - CHAR reduce using rule 57 (expression -> MINUS expression .) - STRING reduce using rule 57 (expression -> MINUS expression .) - REAL reduce using rule 57 (expression -> MINUS expression .) - INTEGER reduce using rule 57 (expression -> MINUS expression .) - NEW reduce using rule 57 (expression -> MINUS expression .) - $end reduce using rule 57 (expression -> MINUS expression .) - RIGHT_SQUARE reduce using rule 57 (expression -> MINUS expression .) - COMMA reduce using rule 57 (expression -> MINUS expression .) - UNTIL reduce using rule 57 (expression -> MINUS expression .) - ENDWHILE reduce using rule 57 (expression -> MINUS expression .) - ENDTYPE reduce using rule 57 (expression -> MINUS expression .) - ENDCLASS reduce using rule 57 (expression -> MINUS expression .) - ELSE reduce using rule 57 (expression -> MINUS expression .) - ENDIF reduce using rule 57 (expression -> MINUS expression .) - ENDPROCEDURE reduce using rule 57 (expression -> MINUS expression .) - SEMICOLON reduce using rule 57 (expression -> MINUS expression .) - NEXT reduce using rule 57 (expression -> MINUS expression .) - ENDFUNCTION reduce using rule 57 (expression -> MINUS expression .) - THEN reduce using rule 57 (expression -> MINUS expression .) - DO reduce using rule 57 (expression -> MINUS expression .) - RIGHT_PAREN reduce using rule 57 (expression -> MINUS expression .) - OTHERWISE reduce using rule 57 (expression -> MINUS expression .) - TO reduce using rule 57 (expression -> MINUS expression .) - COLON reduce using rule 57 (expression -> MINUS expression .) - STEP reduce using rule 57 (expression -> MINUS expression .) + (58) expression -> MINUS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 58 (expression -> MINUS expression .) + OR reduce using rule 58 (expression -> MINUS expression .) + AND reduce using rule 58 (expression -> MINUS expression .) + EQUAL reduce using rule 58 (expression -> MINUS expression .) + NOT_EQUAL reduce using rule 58 (expression -> MINUS expression .) + LESS reduce using rule 58 (expression -> MINUS expression .) + GREATER reduce using rule 58 (expression -> MINUS expression .) + LESS_EQUAL reduce using rule 58 (expression -> MINUS expression .) + GREATER_EQUAL reduce using rule 58 (expression -> MINUS expression .) + MOD reduce using rule 58 (expression -> MINUS expression .) + DIV reduce using rule 58 (expression -> MINUS expression .) + MUL reduce using rule 58 (expression -> MINUS expression .) + N_DIV reduce using rule 58 (expression -> MINUS expression .) + PLUS reduce using rule 58 (expression -> MINUS expression .) + MINUS reduce using rule 58 (expression -> MINUS expression .) + CONNECT reduce using rule 58 (expression -> MINUS expression .) + DOT reduce using rule 58 (expression -> MINUS expression .) + POINTER reduce using rule 58 (expression -> MINUS expression .) + DELETE reduce using rule 58 (expression -> MINUS expression .) + DECLARE reduce using rule 58 (expression -> MINUS expression .) + PUBLIC reduce using rule 58 (expression -> MINUS expression .) + PRIVATE reduce using rule 58 (expression -> MINUS expression .) + CONSTANT reduce using rule 58 (expression -> MINUS expression .) + INPUT reduce using rule 58 (expression -> MINUS expression .) + OUTPUT reduce using rule 58 (expression -> MINUS expression .) + _OUTPUT reduce using rule 58 (expression -> MINUS expression .) + IF reduce using rule 58 (expression -> MINUS expression .) + CASE reduce using rule 58 (expression -> MINUS expression .) + FOR reduce using rule 58 (expression -> MINUS expression .) + REPEAT reduce using rule 58 (expression -> MINUS expression .) + WHILE reduce using rule 58 (expression -> MINUS expression .) + PROCEDURE reduce using rule 58 (expression -> MINUS expression .) + CALL reduce using rule 58 (expression -> MINUS expression .) + FUNCTION reduce using rule 58 (expression -> MINUS expression .) + RETURN reduce using rule 58 (expression -> MINUS expression .) + OPENFILE reduce using rule 58 (expression -> MINUS expression .) + READFILE reduce using rule 58 (expression -> MINUS expression .) + WRITEFILE reduce using rule 58 (expression -> MINUS expression .) + CLOSEFILE reduce using rule 58 (expression -> MINUS expression .) + SEEK reduce using rule 58 (expression -> MINUS expression .) + TYPE reduce using rule 58 (expression -> MINUS expression .) + PASS reduce using rule 58 (expression -> MINUS expression .) + IMPORT reduce using rule 58 (expression -> MINUS expression .) + CLASS reduce using rule 58 (expression -> MINUS expression .) + LEFT_SQUARE reduce using rule 58 (expression -> MINUS expression .) + ID reduce using rule 58 (expression -> MINUS expression .) + NOT reduce using rule 58 (expression -> MINUS expression .) + LEFT_PAREN reduce using rule 58 (expression -> MINUS expression .) + DATE reduce using rule 58 (expression -> MINUS expression .) + BOOLEAN reduce using rule 58 (expression -> MINUS expression .) + CHAR reduce using rule 58 (expression -> MINUS expression .) + STRING reduce using rule 58 (expression -> MINUS expression .) + REAL reduce using rule 58 (expression -> MINUS expression .) + INTEGER reduce using rule 58 (expression -> MINUS expression .) + NEW reduce using rule 58 (expression -> MINUS expression .) + $end reduce using rule 58 (expression -> MINUS expression .) + RIGHT_SQUARE reduce using rule 58 (expression -> MINUS expression .) + COMMA reduce using rule 58 (expression -> MINUS expression .) + UNTIL reduce using rule 58 (expression -> MINUS expression .) + ENDWHILE reduce using rule 58 (expression -> MINUS expression .) + ENDTYPE reduce using rule 58 (expression -> MINUS expression .) + ENDCLASS reduce using rule 58 (expression -> MINUS expression .) + ELSE reduce using rule 58 (expression -> MINUS expression .) + ENDIF reduce using rule 58 (expression -> MINUS expression .) + ENDPROCEDURE reduce using rule 58 (expression -> MINUS expression .) + SEMICOLON reduce using rule 58 (expression -> MINUS expression .) + NEXT reduce using rule 58 (expression -> MINUS expression .) + ENDFUNCTION reduce using rule 58 (expression -> MINUS expression .) + THEN reduce using rule 58 (expression -> MINUS expression .) + DO reduce using rule 58 (expression -> MINUS expression .) + RIGHT_PAREN reduce using rule 58 (expression -> MINUS expression .) + OTHERWISE reduce using rule 58 (expression -> MINUS expression .) + TO reduce using rule 58 (expression -> MINUS expression .) + COLON reduce using rule 58 (expression -> MINUS expression .) + STEP reduce using rule 58 (expression -> MINUS expression .) ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] @@ -6628,100 +6639,100 @@ state 107 state 108 - (58) expression -> PLUS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 58 (expression -> PLUS expression .) - OR reduce using rule 58 (expression -> PLUS expression .) - AND reduce using rule 58 (expression -> PLUS expression .) - EQUAL reduce using rule 58 (expression -> PLUS expression .) - NOT_EQUAL reduce using rule 58 (expression -> PLUS expression .) - LESS reduce using rule 58 (expression -> PLUS expression .) - GREATER reduce using rule 58 (expression -> PLUS expression .) - LESS_EQUAL reduce using rule 58 (expression -> PLUS expression .) - GREATER_EQUAL reduce using rule 58 (expression -> PLUS expression .) - MOD reduce using rule 58 (expression -> PLUS expression .) - DIV reduce using rule 58 (expression -> PLUS expression .) - MUL reduce using rule 58 (expression -> PLUS expression .) - N_DIV reduce using rule 58 (expression -> PLUS expression .) - PLUS reduce using rule 58 (expression -> PLUS expression .) - MINUS reduce using rule 58 (expression -> PLUS expression .) - CONNECT reduce using rule 58 (expression -> PLUS expression .) - DOT reduce using rule 58 (expression -> PLUS expression .) - POINTER reduce using rule 58 (expression -> PLUS expression .) - DELETE reduce using rule 58 (expression -> PLUS expression .) - DECLARE reduce using rule 58 (expression -> PLUS expression .) - PUBLIC reduce using rule 58 (expression -> PLUS expression .) - PRIVATE reduce using rule 58 (expression -> PLUS expression .) - CONSTANT reduce using rule 58 (expression -> PLUS expression .) - INPUT reduce using rule 58 (expression -> PLUS expression .) - OUTPUT reduce using rule 58 (expression -> PLUS expression .) - _OUTPUT reduce using rule 58 (expression -> PLUS expression .) - IF reduce using rule 58 (expression -> PLUS expression .) - CASE reduce using rule 58 (expression -> PLUS expression .) - FOR reduce using rule 58 (expression -> PLUS expression .) - REPEAT reduce using rule 58 (expression -> PLUS expression .) - WHILE reduce using rule 58 (expression -> PLUS expression .) - PROCEDURE reduce using rule 58 (expression -> PLUS expression .) - CALL reduce using rule 58 (expression -> PLUS expression .) - FUNCTION reduce using rule 58 (expression -> PLUS expression .) - RETURN reduce using rule 58 (expression -> PLUS expression .) - OPENFILE reduce using rule 58 (expression -> PLUS expression .) - READFILE reduce using rule 58 (expression -> PLUS expression .) - WRITEFILE reduce using rule 58 (expression -> PLUS expression .) - CLOSEFILE reduce using rule 58 (expression -> PLUS expression .) - SEEK reduce using rule 58 (expression -> PLUS expression .) - TYPE reduce using rule 58 (expression -> PLUS expression .) - PASS reduce using rule 58 (expression -> PLUS expression .) - IMPORT reduce using rule 58 (expression -> PLUS expression .) - CLASS reduce using rule 58 (expression -> PLUS expression .) - LEFT_SQUARE reduce using rule 58 (expression -> PLUS expression .) - ID reduce using rule 58 (expression -> PLUS expression .) - NOT reduce using rule 58 (expression -> PLUS expression .) - LEFT_PAREN reduce using rule 58 (expression -> PLUS expression .) - DATE reduce using rule 58 (expression -> PLUS expression .) - BOOLEAN reduce using rule 58 (expression -> PLUS expression .) - CHAR reduce using rule 58 (expression -> PLUS expression .) - STRING reduce using rule 58 (expression -> PLUS expression .) - REAL reduce using rule 58 (expression -> PLUS expression .) - INTEGER reduce using rule 58 (expression -> PLUS expression .) - NEW reduce using rule 58 (expression -> PLUS expression .) - $end reduce using rule 58 (expression -> PLUS expression .) - RIGHT_SQUARE reduce using rule 58 (expression -> PLUS expression .) - COMMA reduce using rule 58 (expression -> PLUS expression .) - UNTIL reduce using rule 58 (expression -> PLUS expression .) - ENDWHILE reduce using rule 58 (expression -> PLUS expression .) - ENDTYPE reduce using rule 58 (expression -> PLUS expression .) - ENDCLASS reduce using rule 58 (expression -> PLUS expression .) - ELSE reduce using rule 58 (expression -> PLUS expression .) - ENDIF reduce using rule 58 (expression -> PLUS expression .) - ENDPROCEDURE reduce using rule 58 (expression -> PLUS expression .) - SEMICOLON reduce using rule 58 (expression -> PLUS expression .) - NEXT reduce using rule 58 (expression -> PLUS expression .) - ENDFUNCTION reduce using rule 58 (expression -> PLUS expression .) - THEN reduce using rule 58 (expression -> PLUS expression .) - DO reduce using rule 58 (expression -> PLUS expression .) - RIGHT_PAREN reduce using rule 58 (expression -> PLUS expression .) - OTHERWISE reduce using rule 58 (expression -> PLUS expression .) - TO reduce using rule 58 (expression -> PLUS expression .) - COLON reduce using rule 58 (expression -> PLUS expression .) - STEP reduce using rule 58 (expression -> PLUS expression .) + (59) expression -> PLUS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 59 (expression -> PLUS expression .) + OR reduce using rule 59 (expression -> PLUS expression .) + AND reduce using rule 59 (expression -> PLUS expression .) + EQUAL reduce using rule 59 (expression -> PLUS expression .) + NOT_EQUAL reduce using rule 59 (expression -> PLUS expression .) + LESS reduce using rule 59 (expression -> PLUS expression .) + GREATER reduce using rule 59 (expression -> PLUS expression .) + LESS_EQUAL reduce using rule 59 (expression -> PLUS expression .) + GREATER_EQUAL reduce using rule 59 (expression -> PLUS expression .) + MOD reduce using rule 59 (expression -> PLUS expression .) + DIV reduce using rule 59 (expression -> PLUS expression .) + MUL reduce using rule 59 (expression -> PLUS expression .) + N_DIV reduce using rule 59 (expression -> PLUS expression .) + PLUS reduce using rule 59 (expression -> PLUS expression .) + MINUS reduce using rule 59 (expression -> PLUS expression .) + CONNECT reduce using rule 59 (expression -> PLUS expression .) + DOT reduce using rule 59 (expression -> PLUS expression .) + POINTER reduce using rule 59 (expression -> PLUS expression .) + DELETE reduce using rule 59 (expression -> PLUS expression .) + DECLARE reduce using rule 59 (expression -> PLUS expression .) + PUBLIC reduce using rule 59 (expression -> PLUS expression .) + PRIVATE reduce using rule 59 (expression -> PLUS expression .) + CONSTANT reduce using rule 59 (expression -> PLUS expression .) + INPUT reduce using rule 59 (expression -> PLUS expression .) + OUTPUT reduce using rule 59 (expression -> PLUS expression .) + _OUTPUT reduce using rule 59 (expression -> PLUS expression .) + IF reduce using rule 59 (expression -> PLUS expression .) + CASE reduce using rule 59 (expression -> PLUS expression .) + FOR reduce using rule 59 (expression -> PLUS expression .) + REPEAT reduce using rule 59 (expression -> PLUS expression .) + WHILE reduce using rule 59 (expression -> PLUS expression .) + PROCEDURE reduce using rule 59 (expression -> PLUS expression .) + CALL reduce using rule 59 (expression -> PLUS expression .) + FUNCTION reduce using rule 59 (expression -> PLUS expression .) + RETURN reduce using rule 59 (expression -> PLUS expression .) + OPENFILE reduce using rule 59 (expression -> PLUS expression .) + READFILE reduce using rule 59 (expression -> PLUS expression .) + WRITEFILE reduce using rule 59 (expression -> PLUS expression .) + CLOSEFILE reduce using rule 59 (expression -> PLUS expression .) + SEEK reduce using rule 59 (expression -> PLUS expression .) + TYPE reduce using rule 59 (expression -> PLUS expression .) + PASS reduce using rule 59 (expression -> PLUS expression .) + IMPORT reduce using rule 59 (expression -> PLUS expression .) + CLASS reduce using rule 59 (expression -> PLUS expression .) + LEFT_SQUARE reduce using rule 59 (expression -> PLUS expression .) + ID reduce using rule 59 (expression -> PLUS expression .) + NOT reduce using rule 59 (expression -> PLUS expression .) + LEFT_PAREN reduce using rule 59 (expression -> PLUS expression .) + DATE reduce using rule 59 (expression -> PLUS expression .) + BOOLEAN reduce using rule 59 (expression -> PLUS expression .) + CHAR reduce using rule 59 (expression -> PLUS expression .) + STRING reduce using rule 59 (expression -> PLUS expression .) + REAL reduce using rule 59 (expression -> PLUS expression .) + INTEGER reduce using rule 59 (expression -> PLUS expression .) + NEW reduce using rule 59 (expression -> PLUS expression .) + $end reduce using rule 59 (expression -> PLUS expression .) + RIGHT_SQUARE reduce using rule 59 (expression -> PLUS expression .) + COMMA reduce using rule 59 (expression -> PLUS expression .) + UNTIL reduce using rule 59 (expression -> PLUS expression .) + ENDWHILE reduce using rule 59 (expression -> PLUS expression .) + ENDTYPE reduce using rule 59 (expression -> PLUS expression .) + ENDCLASS reduce using rule 59 (expression -> PLUS expression .) + ELSE reduce using rule 59 (expression -> PLUS expression .) + ENDIF reduce using rule 59 (expression -> PLUS expression .) + ENDPROCEDURE reduce using rule 59 (expression -> PLUS expression .) + SEMICOLON reduce using rule 59 (expression -> PLUS expression .) + NEXT reduce using rule 59 (expression -> PLUS expression .) + ENDFUNCTION reduce using rule 59 (expression -> PLUS expression .) + THEN reduce using rule 59 (expression -> PLUS expression .) + DO reduce using rule 59 (expression -> PLUS expression .) + RIGHT_PAREN reduce using rule 59 (expression -> PLUS expression .) + OTHERWISE reduce using rule 59 (expression -> PLUS expression .) + TO reduce using rule 59 (expression -> PLUS expression .) + COLON reduce using rule 59 (expression -> PLUS expression .) + STEP reduce using rule 59 (expression -> PLUS expression .) ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] @@ -6744,36 +6755,36 @@ state 108 state 109 - (43) expression -> ID LEFT_SQUARE indexes . RIGHT_SQUARE - (15) indexes -> indexes . COMMA expression + (44) expression -> ID LEFT_SQUARE indexes . RIGHT_SQUARE + (16) indexes -> indexes . COMMA expression - RIGHT_SQUARE shift and go to state 171 - COMMA shift and go to state 172 + RIGHT_SQUARE shift and go to state 172 + COMMA shift and go to state 173 state 110 - (16) indexes -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_SQUARE reduce using rule 16 (indexes -> expression .) - COMMA reduce using rule 16 (indexes -> expression .) + (17) indexes -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 17 (indexes -> expression .) + COMMA reduce using rule 17 (indexes -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -6795,117 +6806,117 @@ state 110 state 111 - (114) expression -> ID LEFT_PAREN parameters . RIGHT_PAREN - (80) parameters -> parameters . COMMA expression + (115) expression -> ID LEFT_PAREN parameters . RIGHT_PAREN + (81) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 173 - COMMA shift and go to state 174 + RIGHT_PAREN shift and go to state 174 + COMMA shift and go to state 175 state 112 - (117) expression -> ID LEFT_PAREN RIGHT_PAREN . - - ASSIGN reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - OR reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - AND reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - EQUAL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - NOT_EQUAL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - LESS reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - GREATER reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - LESS_EQUAL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - GREATER_EQUAL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - MOD reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - DIV reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - MUL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - N_DIV reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - PLUS reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - MINUS reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CONNECT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - DOT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - POINTER reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - DELETE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - DECLARE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - PUBLIC reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - PRIVATE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CONSTANT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - INPUT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - OUTPUT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - _OUTPUT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - IF reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CASE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - FOR reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - REPEAT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - WHILE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - PROCEDURE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CALL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - FUNCTION reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - RETURN reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - OPENFILE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - READFILE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - WRITEFILE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CLOSEFILE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - SEEK reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - TYPE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - PASS reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - IMPORT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CLASS reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ID reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - NOT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - LEFT_PAREN reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - DATE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - BOOLEAN reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - CHAR reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - STRING reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - REAL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - INTEGER reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - NEW reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - $end reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - RIGHT_SQUARE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - COMMA reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - UNTIL reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ENDWHILE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ENDTYPE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ENDCLASS reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ELSE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ENDIF reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - SEMICOLON reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - NEXT reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - ENDFUNCTION reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - THEN reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - DO reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - RIGHT_PAREN reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - OTHERWISE reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - TO reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - COLON reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) - STEP reduce using rule 117 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + (118) expression -> ID LEFT_PAREN RIGHT_PAREN . + + ASSIGN reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OR reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + AND reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + EQUAL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NOT_EQUAL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LESS reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + GREATER reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LESS_EQUAL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + MOD reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DIV reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + MUL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + N_DIV reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PLUS reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + MINUS reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CONNECT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DOT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + POINTER reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DELETE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DECLARE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PUBLIC reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PRIVATE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CONSTANT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + INPUT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OUTPUT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + _OUTPUT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + IF reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CASE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + FOR reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + REPEAT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + WHILE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PROCEDURE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CALL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + FUNCTION reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + RETURN reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OPENFILE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + READFILE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + WRITEFILE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CLOSEFILE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + SEEK reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + TYPE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PASS reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + IMPORT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CLASS reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ID reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NOT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LEFT_PAREN reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DATE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + BOOLEAN reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CHAR reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + STRING reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + REAL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + INTEGER reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NEW reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + $end reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + COMMA reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + UNTIL reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDWHILE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDTYPE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDCLASS reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ELSE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDIF reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + SEMICOLON reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NEXT reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDFUNCTION reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + THEN reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DO reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OTHERWISE reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + TO reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + COLON reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + STEP reduce using rule 118 (expression -> ID LEFT_PAREN RIGHT_PAREN .) state 113 - (81) parameters -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_PAREN reduce using rule 81 (parameters -> expression .) - COMMA reduce using rule 81 (parameters -> expression .) + (82) parameters -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_PAREN reduce using rule 82 (parameters -> expression .) + COMMA reduce using rule 82 (parameters -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -6928,127 +6939,127 @@ state 113 state 114 (4) statement -> DECLARE ID COLON . ID - (8) statement -> DECLARE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) statement -> DECLARE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - ID shift and go to state 175 - ARRAY shift and go to state 176 + ID shift and go to state 176 + ARRAY shift and go to state 177 state 115 (5) statement -> PUBLIC ID COLON . ID - (9) statement -> PUBLIC ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> PUBLIC ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - ID shift and go to state 177 - ARRAY shift and go to state 178 + ID shift and go to state 178 + ARRAY shift and go to state 179 state 116 - (86) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 179 + LEFT_PAREN shift and go to state 180 state 117 - (87) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 180 + LEFT_PAREN shift and go to state 181 state 118 - (100) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (101) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - LEFT_PAREN shift and go to state 181 + LEFT_PAREN shift and go to state 182 state 119 (6) statement -> PRIVATE ID COLON . ID - (10) statement -> PRIVATE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> PRIVATE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - ID shift and go to state 182 - ARRAY shift and go to state 183 + ID shift and go to state 183 + ARRAY shift and go to state 184 state 120 - (90) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 184 + LEFT_PAREN shift and go to state 185 state 121 - (91) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 185 + LEFT_PAREN shift and go to state 186 state 122 - (104) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (105) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - LEFT_PAREN shift and go to state 186 + LEFT_PAREN shift and go to state 187 state 123 (7) statement -> CONSTANT ID EQUAL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -7067,82 +7078,143 @@ state 123 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 187 + expression shift and go to state 188 state 124 - (14) statement -> expression ASSIGN expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (8) statement -> CONSTANT ID ASSIGN . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + LEFT_SQUARE shift and go to state 10 + ID shift and go to state 4 + NOT shift and go to state 35 + MINUS shift and go to state 38 + PLUS shift and go to state 39 + LEFT_PAREN shift and go to state 20 + DATE shift and go to state 40 + BOOLEAN shift and go to state 41 + CHAR shift and go to state 42 + STRING shift and go to state 43 + REAL shift and go to state 44 + INTEGER shift and go to state 45 + MOD shift and go to state 36 + DIV shift and go to state 37 + POINTER shift and go to state 31 + NEW shift and go to state 21 + + expression shift and go to state 189 + +state 125 + + (15) statement -> expression ASSIGN expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 14 (statement -> expression ASSIGN expression .) - DECLARE reduce using rule 14 (statement -> expression ASSIGN expression .) - PUBLIC reduce using rule 14 (statement -> expression ASSIGN expression .) - PRIVATE reduce using rule 14 (statement -> expression ASSIGN expression .) - CONSTANT reduce using rule 14 (statement -> expression ASSIGN expression .) - INPUT reduce using rule 14 (statement -> expression ASSIGN expression .) - OUTPUT reduce using rule 14 (statement -> expression ASSIGN expression .) - _OUTPUT reduce using rule 14 (statement -> expression ASSIGN expression .) - IF reduce using rule 14 (statement -> expression ASSIGN expression .) - CASE reduce using rule 14 (statement -> expression ASSIGN expression .) - FOR reduce using rule 14 (statement -> expression ASSIGN expression .) - REPEAT reduce using rule 14 (statement -> expression ASSIGN expression .) - WHILE reduce using rule 14 (statement -> expression ASSIGN expression .) - PROCEDURE reduce using rule 14 (statement -> expression ASSIGN expression .) - CALL reduce using rule 14 (statement -> expression ASSIGN expression .) - FUNCTION reduce using rule 14 (statement -> expression ASSIGN expression .) - RETURN reduce using rule 14 (statement -> expression ASSIGN expression .) - OPENFILE reduce using rule 14 (statement -> expression ASSIGN expression .) - READFILE reduce using rule 14 (statement -> expression ASSIGN expression .) - WRITEFILE reduce using rule 14 (statement -> expression ASSIGN expression .) - CLOSEFILE reduce using rule 14 (statement -> expression ASSIGN expression .) - SEEK reduce using rule 14 (statement -> expression ASSIGN expression .) - TYPE reduce using rule 14 (statement -> expression ASSIGN expression .) - PASS reduce using rule 14 (statement -> expression ASSIGN expression .) - IMPORT reduce using rule 14 (statement -> expression ASSIGN expression .) - CLASS reduce using rule 14 (statement -> expression ASSIGN expression .) - LEFT_SQUARE reduce using rule 14 (statement -> expression ASSIGN expression .) - ID reduce using rule 14 (statement -> expression ASSIGN expression .) - NOT reduce using rule 14 (statement -> expression ASSIGN expression .) - LEFT_PAREN reduce using rule 14 (statement -> expression ASSIGN expression .) - DATE reduce using rule 14 (statement -> expression ASSIGN expression .) - BOOLEAN reduce using rule 14 (statement -> expression ASSIGN expression .) - CHAR reduce using rule 14 (statement -> expression ASSIGN expression .) - STRING reduce using rule 14 (statement -> expression ASSIGN expression .) - REAL reduce using rule 14 (statement -> expression ASSIGN expression .) - INTEGER reduce using rule 14 (statement -> expression ASSIGN expression .) - NEW reduce using rule 14 (statement -> expression ASSIGN expression .) - $end reduce using rule 14 (statement -> expression ASSIGN expression .) - UNTIL reduce using rule 14 (statement -> expression ASSIGN expression .) - ENDWHILE reduce using rule 14 (statement -> expression ASSIGN expression .) - ENDTYPE reduce using rule 14 (statement -> expression ASSIGN expression .) - ENDCLASS reduce using rule 14 (statement -> expression ASSIGN expression .) - ELSE reduce using rule 14 (statement -> expression ASSIGN expression .) - ENDIF reduce using rule 14 (statement -> expression ASSIGN expression .) - ENDPROCEDURE reduce using rule 14 (statement -> expression ASSIGN expression .) - SEMICOLON reduce using rule 14 (statement -> expression ASSIGN expression .) - NEXT reduce using rule 14 (statement -> expression ASSIGN expression .) - ENDFUNCTION reduce using rule 14 (statement -> expression ASSIGN expression .) + DELETE reduce using rule 15 (statement -> expression ASSIGN expression .) + DECLARE reduce using rule 15 (statement -> expression ASSIGN expression .) + PUBLIC reduce using rule 15 (statement -> expression ASSIGN expression .) + PRIVATE reduce using rule 15 (statement -> expression ASSIGN expression .) + CONSTANT reduce using rule 15 (statement -> expression ASSIGN expression .) + INPUT reduce using rule 15 (statement -> expression ASSIGN expression .) + OUTPUT reduce using rule 15 (statement -> expression ASSIGN expression .) + _OUTPUT reduce using rule 15 (statement -> expression ASSIGN expression .) + IF reduce using rule 15 (statement -> expression ASSIGN expression .) + CASE reduce using rule 15 (statement -> expression ASSIGN expression .) + FOR reduce using rule 15 (statement -> expression ASSIGN expression .) + REPEAT reduce using rule 15 (statement -> expression ASSIGN expression .) + WHILE reduce using rule 15 (statement -> expression ASSIGN expression .) + PROCEDURE reduce using rule 15 (statement -> expression ASSIGN expression .) + CALL reduce using rule 15 (statement -> expression ASSIGN expression .) + FUNCTION reduce using rule 15 (statement -> expression ASSIGN expression .) + RETURN reduce using rule 15 (statement -> expression ASSIGN expression .) + OPENFILE reduce using rule 15 (statement -> expression ASSIGN expression .) + READFILE reduce using rule 15 (statement -> expression ASSIGN expression .) + WRITEFILE reduce using rule 15 (statement -> expression ASSIGN expression .) + CLOSEFILE reduce using rule 15 (statement -> expression ASSIGN expression .) + SEEK reduce using rule 15 (statement -> expression ASSIGN expression .) + TYPE reduce using rule 15 (statement -> expression ASSIGN expression .) + PASS reduce using rule 15 (statement -> expression ASSIGN expression .) + IMPORT reduce using rule 15 (statement -> expression ASSIGN expression .) + CLASS reduce using rule 15 (statement -> expression ASSIGN expression .) + LEFT_SQUARE reduce using rule 15 (statement -> expression ASSIGN expression .) + ID reduce using rule 15 (statement -> expression ASSIGN expression .) + NOT reduce using rule 15 (statement -> expression ASSIGN expression .) + LEFT_PAREN reduce using rule 15 (statement -> expression ASSIGN expression .) + DATE reduce using rule 15 (statement -> expression ASSIGN expression .) + BOOLEAN reduce using rule 15 (statement -> expression ASSIGN expression .) + CHAR reduce using rule 15 (statement -> expression ASSIGN expression .) + STRING reduce using rule 15 (statement -> expression ASSIGN expression .) + REAL reduce using rule 15 (statement -> expression ASSIGN expression .) + INTEGER reduce using rule 15 (statement -> expression ASSIGN expression .) + NEW reduce using rule 15 (statement -> expression ASSIGN expression .) + $end reduce using rule 15 (statement -> expression ASSIGN expression .) + UNTIL reduce using rule 15 (statement -> expression ASSIGN expression .) + ENDWHILE reduce using rule 15 (statement -> expression ASSIGN expression .) + ENDTYPE reduce using rule 15 (statement -> expression ASSIGN expression .) + ENDCLASS reduce using rule 15 (statement -> expression ASSIGN expression .) + ELSE reduce using rule 15 (statement -> expression ASSIGN expression .) + ENDIF reduce using rule 15 (statement -> expression ASSIGN expression .) + ENDPROCEDURE reduce using rule 15 (statement -> expression ASSIGN expression .) + SEMICOLON reduce using rule 15 (statement -> expression ASSIGN expression .) + NEXT reduce using rule 15 (statement -> expression ASSIGN expression .) + ENDFUNCTION reduce using rule 15 (statement -> expression ASSIGN expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -7161,97 +7233,97 @@ state 124 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 14 (statement -> expression ASSIGN expression .) ] - ! PLUS [ reduce using rule 14 (statement -> expression ASSIGN expression .) ] - ! MOD [ reduce using rule 14 (statement -> expression ASSIGN expression .) ] - ! DIV [ reduce using rule 14 (statement -> expression ASSIGN expression .) ] - ! POINTER [ reduce using rule 14 (statement -> expression ASSIGN expression .) ] + ! MINUS [ reduce using rule 15 (statement -> expression ASSIGN expression .) ] + ! PLUS [ reduce using rule 15 (statement -> expression ASSIGN expression .) ] + ! MOD [ reduce using rule 15 (statement -> expression ASSIGN expression .) ] + ! DIV [ reduce using rule 15 (statement -> expression ASSIGN expression .) ] + ! POINTER [ reduce using rule 15 (statement -> expression ASSIGN expression .) ] -state 125 +state 126 - (44) expression -> expression OR expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 44 (expression -> expression OR expression .) - OR reduce using rule 44 (expression -> expression OR expression .) - AND reduce using rule 44 (expression -> expression OR expression .) - CONNECT reduce using rule 44 (expression -> expression OR expression .) - DOT reduce using rule 44 (expression -> expression OR expression .) - POINTER reduce using rule 44 (expression -> expression OR expression .) - DELETE reduce using rule 44 (expression -> expression OR expression .) - DECLARE reduce using rule 44 (expression -> expression OR expression .) - PUBLIC reduce using rule 44 (expression -> expression OR expression .) - PRIVATE reduce using rule 44 (expression -> expression OR expression .) - CONSTANT reduce using rule 44 (expression -> expression OR expression .) - INPUT reduce using rule 44 (expression -> expression OR expression .) - OUTPUT reduce using rule 44 (expression -> expression OR expression .) - _OUTPUT reduce using rule 44 (expression -> expression OR expression .) - IF reduce using rule 44 (expression -> expression OR expression .) - CASE reduce using rule 44 (expression -> expression OR expression .) - FOR reduce using rule 44 (expression -> expression OR expression .) - REPEAT reduce using rule 44 (expression -> expression OR expression .) - WHILE reduce using rule 44 (expression -> expression OR expression .) - PROCEDURE reduce using rule 44 (expression -> expression OR expression .) - CALL reduce using rule 44 (expression -> expression OR expression .) - FUNCTION reduce using rule 44 (expression -> expression OR expression .) - RETURN reduce using rule 44 (expression -> expression OR expression .) - OPENFILE reduce using rule 44 (expression -> expression OR expression .) - READFILE reduce using rule 44 (expression -> expression OR expression .) - WRITEFILE reduce using rule 44 (expression -> expression OR expression .) - CLOSEFILE reduce using rule 44 (expression -> expression OR expression .) - SEEK reduce using rule 44 (expression -> expression OR expression .) - TYPE reduce using rule 44 (expression -> expression OR expression .) - PASS reduce using rule 44 (expression -> expression OR expression .) - IMPORT reduce using rule 44 (expression -> expression OR expression .) - CLASS reduce using rule 44 (expression -> expression OR expression .) - LEFT_SQUARE reduce using rule 44 (expression -> expression OR expression .) - ID reduce using rule 44 (expression -> expression OR expression .) - NOT reduce using rule 44 (expression -> expression OR expression .) - LEFT_PAREN reduce using rule 44 (expression -> expression OR expression .) - DATE reduce using rule 44 (expression -> expression OR expression .) - BOOLEAN reduce using rule 44 (expression -> expression OR expression .) - CHAR reduce using rule 44 (expression -> expression OR expression .) - STRING reduce using rule 44 (expression -> expression OR expression .) - REAL reduce using rule 44 (expression -> expression OR expression .) - INTEGER reduce using rule 44 (expression -> expression OR expression .) - NEW reduce using rule 44 (expression -> expression OR expression .) - $end reduce using rule 44 (expression -> expression OR expression .) - RIGHT_SQUARE reduce using rule 44 (expression -> expression OR expression .) - COMMA reduce using rule 44 (expression -> expression OR expression .) - UNTIL reduce using rule 44 (expression -> expression OR expression .) - ENDWHILE reduce using rule 44 (expression -> expression OR expression .) - ENDTYPE reduce using rule 44 (expression -> expression OR expression .) - ENDCLASS reduce using rule 44 (expression -> expression OR expression .) - ELSE reduce using rule 44 (expression -> expression OR expression .) - ENDIF reduce using rule 44 (expression -> expression OR expression .) - ENDPROCEDURE reduce using rule 44 (expression -> expression OR expression .) - SEMICOLON reduce using rule 44 (expression -> expression OR expression .) - NEXT reduce using rule 44 (expression -> expression OR expression .) - ENDFUNCTION reduce using rule 44 (expression -> expression OR expression .) - THEN reduce using rule 44 (expression -> expression OR expression .) - DO reduce using rule 44 (expression -> expression OR expression .) - RIGHT_PAREN reduce using rule 44 (expression -> expression OR expression .) - OTHERWISE reduce using rule 44 (expression -> expression OR expression .) - TO reduce using rule 44 (expression -> expression OR expression .) - COLON reduce using rule 44 (expression -> expression OR expression .) - STEP reduce using rule 44 (expression -> expression OR expression .) + (45) expression -> expression OR expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 45 (expression -> expression OR expression .) + OR reduce using rule 45 (expression -> expression OR expression .) + AND reduce using rule 45 (expression -> expression OR expression .) + CONNECT reduce using rule 45 (expression -> expression OR expression .) + DOT reduce using rule 45 (expression -> expression OR expression .) + POINTER reduce using rule 45 (expression -> expression OR expression .) + DELETE reduce using rule 45 (expression -> expression OR expression .) + DECLARE reduce using rule 45 (expression -> expression OR expression .) + PUBLIC reduce using rule 45 (expression -> expression OR expression .) + PRIVATE reduce using rule 45 (expression -> expression OR expression .) + CONSTANT reduce using rule 45 (expression -> expression OR expression .) + INPUT reduce using rule 45 (expression -> expression OR expression .) + OUTPUT reduce using rule 45 (expression -> expression OR expression .) + _OUTPUT reduce using rule 45 (expression -> expression OR expression .) + IF reduce using rule 45 (expression -> expression OR expression .) + CASE reduce using rule 45 (expression -> expression OR expression .) + FOR reduce using rule 45 (expression -> expression OR expression .) + REPEAT reduce using rule 45 (expression -> expression OR expression .) + WHILE reduce using rule 45 (expression -> expression OR expression .) + PROCEDURE reduce using rule 45 (expression -> expression OR expression .) + CALL reduce using rule 45 (expression -> expression OR expression .) + FUNCTION reduce using rule 45 (expression -> expression OR expression .) + RETURN reduce using rule 45 (expression -> expression OR expression .) + OPENFILE reduce using rule 45 (expression -> expression OR expression .) + READFILE reduce using rule 45 (expression -> expression OR expression .) + WRITEFILE reduce using rule 45 (expression -> expression OR expression .) + CLOSEFILE reduce using rule 45 (expression -> expression OR expression .) + SEEK reduce using rule 45 (expression -> expression OR expression .) + TYPE reduce using rule 45 (expression -> expression OR expression .) + PASS reduce using rule 45 (expression -> expression OR expression .) + IMPORT reduce using rule 45 (expression -> expression OR expression .) + CLASS reduce using rule 45 (expression -> expression OR expression .) + LEFT_SQUARE reduce using rule 45 (expression -> expression OR expression .) + ID reduce using rule 45 (expression -> expression OR expression .) + NOT reduce using rule 45 (expression -> expression OR expression .) + LEFT_PAREN reduce using rule 45 (expression -> expression OR expression .) + DATE reduce using rule 45 (expression -> expression OR expression .) + BOOLEAN reduce using rule 45 (expression -> expression OR expression .) + CHAR reduce using rule 45 (expression -> expression OR expression .) + STRING reduce using rule 45 (expression -> expression OR expression .) + REAL reduce using rule 45 (expression -> expression OR expression .) + INTEGER reduce using rule 45 (expression -> expression OR expression .) + NEW reduce using rule 45 (expression -> expression OR expression .) + $end reduce using rule 45 (expression -> expression OR expression .) + RIGHT_SQUARE reduce using rule 45 (expression -> expression OR expression .) + COMMA reduce using rule 45 (expression -> expression OR expression .) + UNTIL reduce using rule 45 (expression -> expression OR expression .) + ENDWHILE reduce using rule 45 (expression -> expression OR expression .) + ENDTYPE reduce using rule 45 (expression -> expression OR expression .) + ENDCLASS reduce using rule 45 (expression -> expression OR expression .) + ELSE reduce using rule 45 (expression -> expression OR expression .) + ENDIF reduce using rule 45 (expression -> expression OR expression .) + ENDPROCEDURE reduce using rule 45 (expression -> expression OR expression .) + SEMICOLON reduce using rule 45 (expression -> expression OR expression .) + NEXT reduce using rule 45 (expression -> expression OR expression .) + ENDFUNCTION reduce using rule 45 (expression -> expression OR expression .) + THEN reduce using rule 45 (expression -> expression OR expression .) + DO reduce using rule 45 (expression -> expression OR expression .) + RIGHT_PAREN reduce using rule 45 (expression -> expression OR expression .) + OTHERWISE reduce using rule 45 (expression -> expression OR expression .) + TO reduce using rule 45 (expression -> expression OR expression .) + COLON reduce using rule 45 (expression -> expression OR expression .) + STEP reduce using rule 45 (expression -> expression OR expression .) EQUAL shift and go to state 61 NOT_EQUAL shift and go to state 62 LESS shift and go to state 63 @@ -7265,18 +7337,18 @@ state 125 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! EQUAL [ reduce using rule 44 (expression -> expression OR expression .) ] - ! NOT_EQUAL [ reduce using rule 44 (expression -> expression OR expression .) ] - ! LESS [ reduce using rule 44 (expression -> expression OR expression .) ] - ! GREATER [ reduce using rule 44 (expression -> expression OR expression .) ] - ! LESS_EQUAL [ reduce using rule 44 (expression -> expression OR expression .) ] - ! GREATER_EQUAL [ reduce using rule 44 (expression -> expression OR expression .) ] - ! MOD [ reduce using rule 44 (expression -> expression OR expression .) ] - ! DIV [ reduce using rule 44 (expression -> expression OR expression .) ] - ! MUL [ reduce using rule 44 (expression -> expression OR expression .) ] - ! N_DIV [ reduce using rule 44 (expression -> expression OR expression .) ] - ! PLUS [ reduce using rule 44 (expression -> expression OR expression .) ] - ! MINUS [ reduce using rule 44 (expression -> expression OR expression .) ] + ! EQUAL [ reduce using rule 45 (expression -> expression OR expression .) ] + ! NOT_EQUAL [ reduce using rule 45 (expression -> expression OR expression .) ] + ! LESS [ reduce using rule 45 (expression -> expression OR expression .) ] + ! GREATER [ reduce using rule 45 (expression -> expression OR expression .) ] + ! LESS_EQUAL [ reduce using rule 45 (expression -> expression OR expression .) ] + ! GREATER_EQUAL [ reduce using rule 45 (expression -> expression OR expression .) ] + ! MOD [ reduce using rule 45 (expression -> expression OR expression .) ] + ! DIV [ reduce using rule 45 (expression -> expression OR expression .) ] + ! MUL [ reduce using rule 45 (expression -> expression OR expression .) ] + ! N_DIV [ reduce using rule 45 (expression -> expression OR expression .) ] + ! PLUS [ reduce using rule 45 (expression -> expression OR expression .) ] + ! MINUS [ reduce using rule 45 (expression -> expression OR expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! CONNECT [ shift and go to state 73 ] @@ -7284,89 +7356,89 @@ state 125 ! POINTER [ shift and go to state 75 ] -state 126 +state 127 - (45) expression -> expression AND expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 45 (expression -> expression AND expression .) - AND reduce using rule 45 (expression -> expression AND expression .) - CONNECT reduce using rule 45 (expression -> expression AND expression .) - DOT reduce using rule 45 (expression -> expression AND expression .) - POINTER reduce using rule 45 (expression -> expression AND expression .) - DELETE reduce using rule 45 (expression -> expression AND expression .) - DECLARE reduce using rule 45 (expression -> expression AND expression .) - PUBLIC reduce using rule 45 (expression -> expression AND expression .) - PRIVATE reduce using rule 45 (expression -> expression AND expression .) - CONSTANT reduce using rule 45 (expression -> expression AND expression .) - INPUT reduce using rule 45 (expression -> expression AND expression .) - OUTPUT reduce using rule 45 (expression -> expression AND expression .) - _OUTPUT reduce using rule 45 (expression -> expression AND expression .) - IF reduce using rule 45 (expression -> expression AND expression .) - CASE reduce using rule 45 (expression -> expression AND expression .) - FOR reduce using rule 45 (expression -> expression AND expression .) - REPEAT reduce using rule 45 (expression -> expression AND expression .) - WHILE reduce using rule 45 (expression -> expression AND expression .) - PROCEDURE reduce using rule 45 (expression -> expression AND expression .) - CALL reduce using rule 45 (expression -> expression AND expression .) - FUNCTION reduce using rule 45 (expression -> expression AND expression .) - RETURN reduce using rule 45 (expression -> expression AND expression .) - OPENFILE reduce using rule 45 (expression -> expression AND expression .) - READFILE reduce using rule 45 (expression -> expression AND expression .) - WRITEFILE reduce using rule 45 (expression -> expression AND expression .) - CLOSEFILE reduce using rule 45 (expression -> expression AND expression .) - SEEK reduce using rule 45 (expression -> expression AND expression .) - TYPE reduce using rule 45 (expression -> expression AND expression .) - PASS reduce using rule 45 (expression -> expression AND expression .) - IMPORT reduce using rule 45 (expression -> expression AND expression .) - CLASS reduce using rule 45 (expression -> expression AND expression .) - LEFT_SQUARE reduce using rule 45 (expression -> expression AND expression .) - ID reduce using rule 45 (expression -> expression AND expression .) - NOT reduce using rule 45 (expression -> expression AND expression .) - LEFT_PAREN reduce using rule 45 (expression -> expression AND expression .) - DATE reduce using rule 45 (expression -> expression AND expression .) - BOOLEAN reduce using rule 45 (expression -> expression AND expression .) - CHAR reduce using rule 45 (expression -> expression AND expression .) - STRING reduce using rule 45 (expression -> expression AND expression .) - REAL reduce using rule 45 (expression -> expression AND expression .) - INTEGER reduce using rule 45 (expression -> expression AND expression .) - NEW reduce using rule 45 (expression -> expression AND expression .) - $end reduce using rule 45 (expression -> expression AND expression .) - RIGHT_SQUARE reduce using rule 45 (expression -> expression AND expression .) - COMMA reduce using rule 45 (expression -> expression AND expression .) - UNTIL reduce using rule 45 (expression -> expression AND expression .) - ENDWHILE reduce using rule 45 (expression -> expression AND expression .) - ENDTYPE reduce using rule 45 (expression -> expression AND expression .) - ENDCLASS reduce using rule 45 (expression -> expression AND expression .) - ELSE reduce using rule 45 (expression -> expression AND expression .) - ENDIF reduce using rule 45 (expression -> expression AND expression .) - ENDPROCEDURE reduce using rule 45 (expression -> expression AND expression .) - SEMICOLON reduce using rule 45 (expression -> expression AND expression .) - NEXT reduce using rule 45 (expression -> expression AND expression .) - ENDFUNCTION reduce using rule 45 (expression -> expression AND expression .) - THEN reduce using rule 45 (expression -> expression AND expression .) - DO reduce using rule 45 (expression -> expression AND expression .) - RIGHT_PAREN reduce using rule 45 (expression -> expression AND expression .) - OTHERWISE reduce using rule 45 (expression -> expression AND expression .) - TO reduce using rule 45 (expression -> expression AND expression .) - COLON reduce using rule 45 (expression -> expression AND expression .) - STEP reduce using rule 45 (expression -> expression AND expression .) + (46) expression -> expression AND expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 46 (expression -> expression AND expression .) + AND reduce using rule 46 (expression -> expression AND expression .) + CONNECT reduce using rule 46 (expression -> expression AND expression .) + DOT reduce using rule 46 (expression -> expression AND expression .) + POINTER reduce using rule 46 (expression -> expression AND expression .) + DELETE reduce using rule 46 (expression -> expression AND expression .) + DECLARE reduce using rule 46 (expression -> expression AND expression .) + PUBLIC reduce using rule 46 (expression -> expression AND expression .) + PRIVATE reduce using rule 46 (expression -> expression AND expression .) + CONSTANT reduce using rule 46 (expression -> expression AND expression .) + INPUT reduce using rule 46 (expression -> expression AND expression .) + OUTPUT reduce using rule 46 (expression -> expression AND expression .) + _OUTPUT reduce using rule 46 (expression -> expression AND expression .) + IF reduce using rule 46 (expression -> expression AND expression .) + CASE reduce using rule 46 (expression -> expression AND expression .) + FOR reduce using rule 46 (expression -> expression AND expression .) + REPEAT reduce using rule 46 (expression -> expression AND expression .) + WHILE reduce using rule 46 (expression -> expression AND expression .) + PROCEDURE reduce using rule 46 (expression -> expression AND expression .) + CALL reduce using rule 46 (expression -> expression AND expression .) + FUNCTION reduce using rule 46 (expression -> expression AND expression .) + RETURN reduce using rule 46 (expression -> expression AND expression .) + OPENFILE reduce using rule 46 (expression -> expression AND expression .) + READFILE reduce using rule 46 (expression -> expression AND expression .) + WRITEFILE reduce using rule 46 (expression -> expression AND expression .) + CLOSEFILE reduce using rule 46 (expression -> expression AND expression .) + SEEK reduce using rule 46 (expression -> expression AND expression .) + TYPE reduce using rule 46 (expression -> expression AND expression .) + PASS reduce using rule 46 (expression -> expression AND expression .) + IMPORT reduce using rule 46 (expression -> expression AND expression .) + CLASS reduce using rule 46 (expression -> expression AND expression .) + LEFT_SQUARE reduce using rule 46 (expression -> expression AND expression .) + ID reduce using rule 46 (expression -> expression AND expression .) + NOT reduce using rule 46 (expression -> expression AND expression .) + LEFT_PAREN reduce using rule 46 (expression -> expression AND expression .) + DATE reduce using rule 46 (expression -> expression AND expression .) + BOOLEAN reduce using rule 46 (expression -> expression AND expression .) + CHAR reduce using rule 46 (expression -> expression AND expression .) + STRING reduce using rule 46 (expression -> expression AND expression .) + REAL reduce using rule 46 (expression -> expression AND expression .) + INTEGER reduce using rule 46 (expression -> expression AND expression .) + NEW reduce using rule 46 (expression -> expression AND expression .) + $end reduce using rule 46 (expression -> expression AND expression .) + RIGHT_SQUARE reduce using rule 46 (expression -> expression AND expression .) + COMMA reduce using rule 46 (expression -> expression AND expression .) + UNTIL reduce using rule 46 (expression -> expression AND expression .) + ENDWHILE reduce using rule 46 (expression -> expression AND expression .) + ENDTYPE reduce using rule 46 (expression -> expression AND expression .) + ENDCLASS reduce using rule 46 (expression -> expression AND expression .) + ELSE reduce using rule 46 (expression -> expression AND expression .) + ENDIF reduce using rule 46 (expression -> expression AND expression .) + ENDPROCEDURE reduce using rule 46 (expression -> expression AND expression .) + SEMICOLON reduce using rule 46 (expression -> expression AND expression .) + NEXT reduce using rule 46 (expression -> expression AND expression .) + ENDFUNCTION reduce using rule 46 (expression -> expression AND expression .) + THEN reduce using rule 46 (expression -> expression AND expression .) + DO reduce using rule 46 (expression -> expression AND expression .) + RIGHT_PAREN reduce using rule 46 (expression -> expression AND expression .) + OTHERWISE reduce using rule 46 (expression -> expression AND expression .) + TO reduce using rule 46 (expression -> expression AND expression .) + COLON reduce using rule 46 (expression -> expression AND expression .) + STEP reduce using rule 46 (expression -> expression AND expression .) OR shift and go to state 59 EQUAL shift and go to state 61 NOT_EQUAL shift and go to state 62 @@ -7381,115 +7453,115 @@ state 126 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! OR [ reduce using rule 45 (expression -> expression AND expression .) ] - ! EQUAL [ reduce using rule 45 (expression -> expression AND expression .) ] - ! NOT_EQUAL [ reduce using rule 45 (expression -> expression AND expression .) ] - ! LESS [ reduce using rule 45 (expression -> expression AND expression .) ] - ! GREATER [ reduce using rule 45 (expression -> expression AND expression .) ] - ! LESS_EQUAL [ reduce using rule 45 (expression -> expression AND expression .) ] - ! GREATER_EQUAL [ reduce using rule 45 (expression -> expression AND expression .) ] - ! MOD [ reduce using rule 45 (expression -> expression AND expression .) ] - ! DIV [ reduce using rule 45 (expression -> expression AND expression .) ] - ! MUL [ reduce using rule 45 (expression -> expression AND expression .) ] - ! N_DIV [ reduce using rule 45 (expression -> expression AND expression .) ] - ! PLUS [ reduce using rule 45 (expression -> expression AND expression .) ] - ! MINUS [ reduce using rule 45 (expression -> expression AND expression .) ] + ! OR [ reduce using rule 46 (expression -> expression AND expression .) ] + ! EQUAL [ reduce using rule 46 (expression -> expression AND expression .) ] + ! NOT_EQUAL [ reduce using rule 46 (expression -> expression AND expression .) ] + ! LESS [ reduce using rule 46 (expression -> expression AND expression .) ] + ! GREATER [ reduce using rule 46 (expression -> expression AND expression .) ] + ! LESS_EQUAL [ reduce using rule 46 (expression -> expression AND expression .) ] + ! GREATER_EQUAL [ reduce using rule 46 (expression -> expression AND expression .) ] + ! MOD [ reduce using rule 46 (expression -> expression AND expression .) ] + ! DIV [ reduce using rule 46 (expression -> expression AND expression .) ] + ! MUL [ reduce using rule 46 (expression -> expression AND expression .) ] + ! N_DIV [ reduce using rule 46 (expression -> expression AND expression .) ] + ! PLUS [ reduce using rule 46 (expression -> expression AND expression .) ] + ! MINUS [ reduce using rule 46 (expression -> expression AND expression .) ] ! AND [ shift and go to state 60 ] ! CONNECT [ shift and go to state 73 ] ! DOT [ shift and go to state 74 ] ! POINTER [ shift and go to state 75 ] -state 127 +state 128 - (47) expression -> expression EQUAL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 47 (expression -> expression EQUAL expression .) - OR reduce using rule 47 (expression -> expression EQUAL expression .) - AND reduce using rule 47 (expression -> expression EQUAL expression .) - EQUAL reduce using rule 47 (expression -> expression EQUAL expression .) - NOT_EQUAL reduce using rule 47 (expression -> expression EQUAL expression .) - LESS reduce using rule 47 (expression -> expression EQUAL expression .) - GREATER reduce using rule 47 (expression -> expression EQUAL expression .) - LESS_EQUAL reduce using rule 47 (expression -> expression EQUAL expression .) - GREATER_EQUAL reduce using rule 47 (expression -> expression EQUAL expression .) - CONNECT reduce using rule 47 (expression -> expression EQUAL expression .) - DOT reduce using rule 47 (expression -> expression EQUAL expression .) - POINTER reduce using rule 47 (expression -> expression EQUAL expression .) - DELETE reduce using rule 47 (expression -> expression EQUAL expression .) - DECLARE reduce using rule 47 (expression -> expression EQUAL expression .) - PUBLIC reduce using rule 47 (expression -> expression EQUAL expression .) - PRIVATE reduce using rule 47 (expression -> expression EQUAL expression .) - CONSTANT reduce using rule 47 (expression -> expression EQUAL expression .) - INPUT reduce using rule 47 (expression -> expression EQUAL expression .) - OUTPUT reduce using rule 47 (expression -> expression EQUAL expression .) - _OUTPUT reduce using rule 47 (expression -> expression EQUAL expression .) - IF reduce using rule 47 (expression -> expression EQUAL expression .) - CASE reduce using rule 47 (expression -> expression EQUAL expression .) - FOR reduce using rule 47 (expression -> expression EQUAL expression .) - REPEAT reduce using rule 47 (expression -> expression EQUAL expression .) - WHILE reduce using rule 47 (expression -> expression EQUAL expression .) - PROCEDURE reduce using rule 47 (expression -> expression EQUAL expression .) - CALL reduce using rule 47 (expression -> expression EQUAL expression .) - FUNCTION reduce using rule 47 (expression -> expression EQUAL expression .) - RETURN reduce using rule 47 (expression -> expression EQUAL expression .) - OPENFILE reduce using rule 47 (expression -> expression EQUAL expression .) - READFILE reduce using rule 47 (expression -> expression EQUAL expression .) - WRITEFILE reduce using rule 47 (expression -> expression EQUAL expression .) - CLOSEFILE reduce using rule 47 (expression -> expression EQUAL expression .) - SEEK reduce using rule 47 (expression -> expression EQUAL expression .) - TYPE reduce using rule 47 (expression -> expression EQUAL expression .) - PASS reduce using rule 47 (expression -> expression EQUAL expression .) - IMPORT reduce using rule 47 (expression -> expression EQUAL expression .) - CLASS reduce using rule 47 (expression -> expression EQUAL expression .) - LEFT_SQUARE reduce using rule 47 (expression -> expression EQUAL expression .) - ID reduce using rule 47 (expression -> expression EQUAL expression .) - NOT reduce using rule 47 (expression -> expression EQUAL expression .) - LEFT_PAREN reduce using rule 47 (expression -> expression EQUAL expression .) - DATE reduce using rule 47 (expression -> expression EQUAL expression .) - BOOLEAN reduce using rule 47 (expression -> expression EQUAL expression .) - CHAR reduce using rule 47 (expression -> expression EQUAL expression .) - STRING reduce using rule 47 (expression -> expression EQUAL expression .) - REAL reduce using rule 47 (expression -> expression EQUAL expression .) - INTEGER reduce using rule 47 (expression -> expression EQUAL expression .) - NEW reduce using rule 47 (expression -> expression EQUAL expression .) - $end reduce using rule 47 (expression -> expression EQUAL expression .) - RIGHT_SQUARE reduce using rule 47 (expression -> expression EQUAL expression .) - COMMA reduce using rule 47 (expression -> expression EQUAL expression .) - UNTIL reduce using rule 47 (expression -> expression EQUAL expression .) - ENDWHILE reduce using rule 47 (expression -> expression EQUAL expression .) - ENDTYPE reduce using rule 47 (expression -> expression EQUAL expression .) - ENDCLASS reduce using rule 47 (expression -> expression EQUAL expression .) - ELSE reduce using rule 47 (expression -> expression EQUAL expression .) - ENDIF reduce using rule 47 (expression -> expression EQUAL expression .) - ENDPROCEDURE reduce using rule 47 (expression -> expression EQUAL expression .) - SEMICOLON reduce using rule 47 (expression -> expression EQUAL expression .) - NEXT reduce using rule 47 (expression -> expression EQUAL expression .) - ENDFUNCTION reduce using rule 47 (expression -> expression EQUAL expression .) - THEN reduce using rule 47 (expression -> expression EQUAL expression .) - DO reduce using rule 47 (expression -> expression EQUAL expression .) - RIGHT_PAREN reduce using rule 47 (expression -> expression EQUAL expression .) - OTHERWISE reduce using rule 47 (expression -> expression EQUAL expression .) - TO reduce using rule 47 (expression -> expression EQUAL expression .) - COLON reduce using rule 47 (expression -> expression EQUAL expression .) - STEP reduce using rule 47 (expression -> expression EQUAL expression .) + (48) expression -> expression EQUAL expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 48 (expression -> expression EQUAL expression .) + OR reduce using rule 48 (expression -> expression EQUAL expression .) + AND reduce using rule 48 (expression -> expression EQUAL expression .) + EQUAL reduce using rule 48 (expression -> expression EQUAL expression .) + NOT_EQUAL reduce using rule 48 (expression -> expression EQUAL expression .) + LESS reduce using rule 48 (expression -> expression EQUAL expression .) + GREATER reduce using rule 48 (expression -> expression EQUAL expression .) + LESS_EQUAL reduce using rule 48 (expression -> expression EQUAL expression .) + GREATER_EQUAL reduce using rule 48 (expression -> expression EQUAL expression .) + CONNECT reduce using rule 48 (expression -> expression EQUAL expression .) + DOT reduce using rule 48 (expression -> expression EQUAL expression .) + POINTER reduce using rule 48 (expression -> expression EQUAL expression .) + DELETE reduce using rule 48 (expression -> expression EQUAL expression .) + DECLARE reduce using rule 48 (expression -> expression EQUAL expression .) + PUBLIC reduce using rule 48 (expression -> expression EQUAL expression .) + PRIVATE reduce using rule 48 (expression -> expression EQUAL expression .) + CONSTANT reduce using rule 48 (expression -> expression EQUAL expression .) + INPUT reduce using rule 48 (expression -> expression EQUAL expression .) + OUTPUT reduce using rule 48 (expression -> expression EQUAL expression .) + _OUTPUT reduce using rule 48 (expression -> expression EQUAL expression .) + IF reduce using rule 48 (expression -> expression EQUAL expression .) + CASE reduce using rule 48 (expression -> expression EQUAL expression .) + FOR reduce using rule 48 (expression -> expression EQUAL expression .) + REPEAT reduce using rule 48 (expression -> expression EQUAL expression .) + WHILE reduce using rule 48 (expression -> expression EQUAL expression .) + PROCEDURE reduce using rule 48 (expression -> expression EQUAL expression .) + CALL reduce using rule 48 (expression -> expression EQUAL expression .) + FUNCTION reduce using rule 48 (expression -> expression EQUAL expression .) + RETURN reduce using rule 48 (expression -> expression EQUAL expression .) + OPENFILE reduce using rule 48 (expression -> expression EQUAL expression .) + READFILE reduce using rule 48 (expression -> expression EQUAL expression .) + WRITEFILE reduce using rule 48 (expression -> expression EQUAL expression .) + CLOSEFILE reduce using rule 48 (expression -> expression EQUAL expression .) + SEEK reduce using rule 48 (expression -> expression EQUAL expression .) + TYPE reduce using rule 48 (expression -> expression EQUAL expression .) + PASS reduce using rule 48 (expression -> expression EQUAL expression .) + IMPORT reduce using rule 48 (expression -> expression EQUAL expression .) + CLASS reduce using rule 48 (expression -> expression EQUAL expression .) + LEFT_SQUARE reduce using rule 48 (expression -> expression EQUAL expression .) + ID reduce using rule 48 (expression -> expression EQUAL expression .) + NOT reduce using rule 48 (expression -> expression EQUAL expression .) + LEFT_PAREN reduce using rule 48 (expression -> expression EQUAL expression .) + DATE reduce using rule 48 (expression -> expression EQUAL expression .) + BOOLEAN reduce using rule 48 (expression -> expression EQUAL expression .) + CHAR reduce using rule 48 (expression -> expression EQUAL expression .) + STRING reduce using rule 48 (expression -> expression EQUAL expression .) + REAL reduce using rule 48 (expression -> expression EQUAL expression .) + INTEGER reduce using rule 48 (expression -> expression EQUAL expression .) + NEW reduce using rule 48 (expression -> expression EQUAL expression .) + $end reduce using rule 48 (expression -> expression EQUAL expression .) + RIGHT_SQUARE reduce using rule 48 (expression -> expression EQUAL expression .) + COMMA reduce using rule 48 (expression -> expression EQUAL expression .) + UNTIL reduce using rule 48 (expression -> expression EQUAL expression .) + ENDWHILE reduce using rule 48 (expression -> expression EQUAL expression .) + ENDTYPE reduce using rule 48 (expression -> expression EQUAL expression .) + ENDCLASS reduce using rule 48 (expression -> expression EQUAL expression .) + ELSE reduce using rule 48 (expression -> expression EQUAL expression .) + ENDIF reduce using rule 48 (expression -> expression EQUAL expression .) + ENDPROCEDURE reduce using rule 48 (expression -> expression EQUAL expression .) + SEMICOLON reduce using rule 48 (expression -> expression EQUAL expression .) + NEXT reduce using rule 48 (expression -> expression EQUAL expression .) + ENDFUNCTION reduce using rule 48 (expression -> expression EQUAL expression .) + THEN reduce using rule 48 (expression -> expression EQUAL expression .) + DO reduce using rule 48 (expression -> expression EQUAL expression .) + RIGHT_PAREN reduce using rule 48 (expression -> expression EQUAL expression .) + OTHERWISE reduce using rule 48 (expression -> expression EQUAL expression .) + TO reduce using rule 48 (expression -> expression EQUAL expression .) + COLON reduce using rule 48 (expression -> expression EQUAL expression .) + STEP reduce using rule 48 (expression -> expression EQUAL expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 @@ -7497,12 +7569,12 @@ state 127 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! MOD [ reduce using rule 47 (expression -> expression EQUAL expression .) ] - ! DIV [ reduce using rule 47 (expression -> expression EQUAL expression .) ] - ! MUL [ reduce using rule 47 (expression -> expression EQUAL expression .) ] - ! N_DIV [ reduce using rule 47 (expression -> expression EQUAL expression .) ] - ! PLUS [ reduce using rule 47 (expression -> expression EQUAL expression .) ] - ! MINUS [ reduce using rule 47 (expression -> expression EQUAL expression .) ] + ! MOD [ reduce using rule 48 (expression -> expression EQUAL expression .) ] + ! DIV [ reduce using rule 48 (expression -> expression EQUAL expression .) ] + ! MUL [ reduce using rule 48 (expression -> expression EQUAL expression .) ] + ! N_DIV [ reduce using rule 48 (expression -> expression EQUAL expression .) ] + ! PLUS [ reduce using rule 48 (expression -> expression EQUAL expression .) ] + ! MINUS [ reduce using rule 48 (expression -> expression EQUAL expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -7516,96 +7588,96 @@ state 127 ! POINTER [ shift and go to state 75 ] -state 128 +state 129 - (48) expression -> expression NOT_EQUAL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - OR reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - AND reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - EQUAL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - NOT_EQUAL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - LESS reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - GREATER reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - LESS_EQUAL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - GREATER_EQUAL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CONNECT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - DOT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - POINTER reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - DELETE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - DECLARE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - PUBLIC reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - PRIVATE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CONSTANT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - INPUT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - OUTPUT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - _OUTPUT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - IF reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CASE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - FOR reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - REPEAT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - WHILE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - PROCEDURE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CALL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - FUNCTION reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - RETURN reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - OPENFILE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - READFILE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - WRITEFILE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CLOSEFILE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - SEEK reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - TYPE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - PASS reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - IMPORT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CLASS reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - LEFT_SQUARE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ID reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - NOT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - LEFT_PAREN reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - DATE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - BOOLEAN reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - CHAR reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - STRING reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - REAL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - INTEGER reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - NEW reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - $end reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - RIGHT_SQUARE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - COMMA reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - UNTIL reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ENDWHILE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ENDTYPE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ENDCLASS reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ELSE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ENDIF reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ENDPROCEDURE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - SEMICOLON reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - NEXT reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - ENDFUNCTION reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - THEN reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - DO reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - RIGHT_PAREN reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - OTHERWISE reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - TO reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - COLON reduce using rule 48 (expression -> expression NOT_EQUAL expression .) - STEP reduce using rule 48 (expression -> expression NOT_EQUAL expression .) + (49) expression -> expression NOT_EQUAL expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + OR reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + AND reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + EQUAL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + NOT_EQUAL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + LESS reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + GREATER reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + LESS_EQUAL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + GREATER_EQUAL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CONNECT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + DOT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + POINTER reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + DELETE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + DECLARE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + PUBLIC reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + PRIVATE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CONSTANT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + INPUT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + OUTPUT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + _OUTPUT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + IF reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CASE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + FOR reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + REPEAT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + WHILE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + PROCEDURE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CALL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + FUNCTION reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + RETURN reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + OPENFILE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + READFILE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + WRITEFILE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CLOSEFILE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + SEEK reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + TYPE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + PASS reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + IMPORT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CLASS reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + LEFT_SQUARE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ID reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + NOT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + LEFT_PAREN reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + DATE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + BOOLEAN reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + CHAR reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + STRING reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + REAL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + INTEGER reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + NEW reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + $end reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + RIGHT_SQUARE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + COMMA reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + UNTIL reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ENDWHILE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ENDTYPE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ENDCLASS reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ELSE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ENDIF reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ENDPROCEDURE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + SEMICOLON reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + NEXT reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + ENDFUNCTION reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + THEN reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + DO reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + RIGHT_PAREN reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + OTHERWISE reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + TO reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + COLON reduce using rule 49 (expression -> expression NOT_EQUAL expression .) + STEP reduce using rule 49 (expression -> expression NOT_EQUAL expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 @@ -7613,12 +7685,12 @@ state 128 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! MOD [ reduce using rule 48 (expression -> expression NOT_EQUAL expression .) ] - ! DIV [ reduce using rule 48 (expression -> expression NOT_EQUAL expression .) ] - ! MUL [ reduce using rule 48 (expression -> expression NOT_EQUAL expression .) ] - ! N_DIV [ reduce using rule 48 (expression -> expression NOT_EQUAL expression .) ] - ! PLUS [ reduce using rule 48 (expression -> expression NOT_EQUAL expression .) ] - ! MINUS [ reduce using rule 48 (expression -> expression NOT_EQUAL expression .) ] + ! MOD [ reduce using rule 49 (expression -> expression NOT_EQUAL expression .) ] + ! DIV [ reduce using rule 49 (expression -> expression NOT_EQUAL expression .) ] + ! MUL [ reduce using rule 49 (expression -> expression NOT_EQUAL expression .) ] + ! N_DIV [ reduce using rule 49 (expression -> expression NOT_EQUAL expression .) ] + ! PLUS [ reduce using rule 49 (expression -> expression NOT_EQUAL expression .) ] + ! MINUS [ reduce using rule 49 (expression -> expression NOT_EQUAL expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -7632,96 +7704,96 @@ state 128 ! POINTER [ shift and go to state 75 ] -state 129 +state 130 - (49) expression -> expression LESS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 49 (expression -> expression LESS expression .) - OR reduce using rule 49 (expression -> expression LESS expression .) - AND reduce using rule 49 (expression -> expression LESS expression .) - EQUAL reduce using rule 49 (expression -> expression LESS expression .) - NOT_EQUAL reduce using rule 49 (expression -> expression LESS expression .) - LESS reduce using rule 49 (expression -> expression LESS expression .) - GREATER reduce using rule 49 (expression -> expression LESS expression .) - LESS_EQUAL reduce using rule 49 (expression -> expression LESS expression .) - GREATER_EQUAL reduce using rule 49 (expression -> expression LESS expression .) - CONNECT reduce using rule 49 (expression -> expression LESS expression .) - DOT reduce using rule 49 (expression -> expression LESS expression .) - POINTER reduce using rule 49 (expression -> expression LESS expression .) - DELETE reduce using rule 49 (expression -> expression LESS expression .) - DECLARE reduce using rule 49 (expression -> expression LESS expression .) - PUBLIC reduce using rule 49 (expression -> expression LESS expression .) - PRIVATE reduce using rule 49 (expression -> expression LESS expression .) - CONSTANT reduce using rule 49 (expression -> expression LESS expression .) - INPUT reduce using rule 49 (expression -> expression LESS expression .) - OUTPUT reduce using rule 49 (expression -> expression LESS expression .) - _OUTPUT reduce using rule 49 (expression -> expression LESS expression .) - IF reduce using rule 49 (expression -> expression LESS expression .) - CASE reduce using rule 49 (expression -> expression LESS expression .) - FOR reduce using rule 49 (expression -> expression LESS expression .) - REPEAT reduce using rule 49 (expression -> expression LESS expression .) - WHILE reduce using rule 49 (expression -> expression LESS expression .) - PROCEDURE reduce using rule 49 (expression -> expression LESS expression .) - CALL reduce using rule 49 (expression -> expression LESS expression .) - FUNCTION reduce using rule 49 (expression -> expression LESS expression .) - RETURN reduce using rule 49 (expression -> expression LESS expression .) - OPENFILE reduce using rule 49 (expression -> expression LESS expression .) - READFILE reduce using rule 49 (expression -> expression LESS expression .) - WRITEFILE reduce using rule 49 (expression -> expression LESS expression .) - CLOSEFILE reduce using rule 49 (expression -> expression LESS expression .) - SEEK reduce using rule 49 (expression -> expression LESS expression .) - TYPE reduce using rule 49 (expression -> expression LESS expression .) - PASS reduce using rule 49 (expression -> expression LESS expression .) - IMPORT reduce using rule 49 (expression -> expression LESS expression .) - CLASS reduce using rule 49 (expression -> expression LESS expression .) - LEFT_SQUARE reduce using rule 49 (expression -> expression LESS expression .) - ID reduce using rule 49 (expression -> expression LESS expression .) - NOT reduce using rule 49 (expression -> expression LESS expression .) - LEFT_PAREN reduce using rule 49 (expression -> expression LESS expression .) - DATE reduce using rule 49 (expression -> expression LESS expression .) - BOOLEAN reduce using rule 49 (expression -> expression LESS expression .) - CHAR reduce using rule 49 (expression -> expression LESS expression .) - STRING reduce using rule 49 (expression -> expression LESS expression .) - REAL reduce using rule 49 (expression -> expression LESS expression .) - INTEGER reduce using rule 49 (expression -> expression LESS expression .) - NEW reduce using rule 49 (expression -> expression LESS expression .) - $end reduce using rule 49 (expression -> expression LESS expression .) - RIGHT_SQUARE reduce using rule 49 (expression -> expression LESS expression .) - COMMA reduce using rule 49 (expression -> expression LESS expression .) - UNTIL reduce using rule 49 (expression -> expression LESS expression .) - ENDWHILE reduce using rule 49 (expression -> expression LESS expression .) - ENDTYPE reduce using rule 49 (expression -> expression LESS expression .) - ENDCLASS reduce using rule 49 (expression -> expression LESS expression .) - ELSE reduce using rule 49 (expression -> expression LESS expression .) - ENDIF reduce using rule 49 (expression -> expression LESS expression .) - ENDPROCEDURE reduce using rule 49 (expression -> expression LESS expression .) - SEMICOLON reduce using rule 49 (expression -> expression LESS expression .) - NEXT reduce using rule 49 (expression -> expression LESS expression .) - ENDFUNCTION reduce using rule 49 (expression -> expression LESS expression .) - THEN reduce using rule 49 (expression -> expression LESS expression .) - DO reduce using rule 49 (expression -> expression LESS expression .) - RIGHT_PAREN reduce using rule 49 (expression -> expression LESS expression .) - OTHERWISE reduce using rule 49 (expression -> expression LESS expression .) - TO reduce using rule 49 (expression -> expression LESS expression .) - COLON reduce using rule 49 (expression -> expression LESS expression .) - STEP reduce using rule 49 (expression -> expression LESS expression .) + (50) expression -> expression LESS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 50 (expression -> expression LESS expression .) + OR reduce using rule 50 (expression -> expression LESS expression .) + AND reduce using rule 50 (expression -> expression LESS expression .) + EQUAL reduce using rule 50 (expression -> expression LESS expression .) + NOT_EQUAL reduce using rule 50 (expression -> expression LESS expression .) + LESS reduce using rule 50 (expression -> expression LESS expression .) + GREATER reduce using rule 50 (expression -> expression LESS expression .) + LESS_EQUAL reduce using rule 50 (expression -> expression LESS expression .) + GREATER_EQUAL reduce using rule 50 (expression -> expression LESS expression .) + CONNECT reduce using rule 50 (expression -> expression LESS expression .) + DOT reduce using rule 50 (expression -> expression LESS expression .) + POINTER reduce using rule 50 (expression -> expression LESS expression .) + DELETE reduce using rule 50 (expression -> expression LESS expression .) + DECLARE reduce using rule 50 (expression -> expression LESS expression .) + PUBLIC reduce using rule 50 (expression -> expression LESS expression .) + PRIVATE reduce using rule 50 (expression -> expression LESS expression .) + CONSTANT reduce using rule 50 (expression -> expression LESS expression .) + INPUT reduce using rule 50 (expression -> expression LESS expression .) + OUTPUT reduce using rule 50 (expression -> expression LESS expression .) + _OUTPUT reduce using rule 50 (expression -> expression LESS expression .) + IF reduce using rule 50 (expression -> expression LESS expression .) + CASE reduce using rule 50 (expression -> expression LESS expression .) + FOR reduce using rule 50 (expression -> expression LESS expression .) + REPEAT reduce using rule 50 (expression -> expression LESS expression .) + WHILE reduce using rule 50 (expression -> expression LESS expression .) + PROCEDURE reduce using rule 50 (expression -> expression LESS expression .) + CALL reduce using rule 50 (expression -> expression LESS expression .) + FUNCTION reduce using rule 50 (expression -> expression LESS expression .) + RETURN reduce using rule 50 (expression -> expression LESS expression .) + OPENFILE reduce using rule 50 (expression -> expression LESS expression .) + READFILE reduce using rule 50 (expression -> expression LESS expression .) + WRITEFILE reduce using rule 50 (expression -> expression LESS expression .) + CLOSEFILE reduce using rule 50 (expression -> expression LESS expression .) + SEEK reduce using rule 50 (expression -> expression LESS expression .) + TYPE reduce using rule 50 (expression -> expression LESS expression .) + PASS reduce using rule 50 (expression -> expression LESS expression .) + IMPORT reduce using rule 50 (expression -> expression LESS expression .) + CLASS reduce using rule 50 (expression -> expression LESS expression .) + LEFT_SQUARE reduce using rule 50 (expression -> expression LESS expression .) + ID reduce using rule 50 (expression -> expression LESS expression .) + NOT reduce using rule 50 (expression -> expression LESS expression .) + LEFT_PAREN reduce using rule 50 (expression -> expression LESS expression .) + DATE reduce using rule 50 (expression -> expression LESS expression .) + BOOLEAN reduce using rule 50 (expression -> expression LESS expression .) + CHAR reduce using rule 50 (expression -> expression LESS expression .) + STRING reduce using rule 50 (expression -> expression LESS expression .) + REAL reduce using rule 50 (expression -> expression LESS expression .) + INTEGER reduce using rule 50 (expression -> expression LESS expression .) + NEW reduce using rule 50 (expression -> expression LESS expression .) + $end reduce using rule 50 (expression -> expression LESS expression .) + RIGHT_SQUARE reduce using rule 50 (expression -> expression LESS expression .) + COMMA reduce using rule 50 (expression -> expression LESS expression .) + UNTIL reduce using rule 50 (expression -> expression LESS expression .) + ENDWHILE reduce using rule 50 (expression -> expression LESS expression .) + ENDTYPE reduce using rule 50 (expression -> expression LESS expression .) + ENDCLASS reduce using rule 50 (expression -> expression LESS expression .) + ELSE reduce using rule 50 (expression -> expression LESS expression .) + ENDIF reduce using rule 50 (expression -> expression LESS expression .) + ENDPROCEDURE reduce using rule 50 (expression -> expression LESS expression .) + SEMICOLON reduce using rule 50 (expression -> expression LESS expression .) + NEXT reduce using rule 50 (expression -> expression LESS expression .) + ENDFUNCTION reduce using rule 50 (expression -> expression LESS expression .) + THEN reduce using rule 50 (expression -> expression LESS expression .) + DO reduce using rule 50 (expression -> expression LESS expression .) + RIGHT_PAREN reduce using rule 50 (expression -> expression LESS expression .) + OTHERWISE reduce using rule 50 (expression -> expression LESS expression .) + TO reduce using rule 50 (expression -> expression LESS expression .) + COLON reduce using rule 50 (expression -> expression LESS expression .) + STEP reduce using rule 50 (expression -> expression LESS expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 @@ -7729,12 +7801,12 @@ state 129 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! MOD [ reduce using rule 49 (expression -> expression LESS expression .) ] - ! DIV [ reduce using rule 49 (expression -> expression LESS expression .) ] - ! MUL [ reduce using rule 49 (expression -> expression LESS expression .) ] - ! N_DIV [ reduce using rule 49 (expression -> expression LESS expression .) ] - ! PLUS [ reduce using rule 49 (expression -> expression LESS expression .) ] - ! MINUS [ reduce using rule 49 (expression -> expression LESS expression .) ] + ! MOD [ reduce using rule 50 (expression -> expression LESS expression .) ] + ! DIV [ reduce using rule 50 (expression -> expression LESS expression .) ] + ! MUL [ reduce using rule 50 (expression -> expression LESS expression .) ] + ! N_DIV [ reduce using rule 50 (expression -> expression LESS expression .) ] + ! PLUS [ reduce using rule 50 (expression -> expression LESS expression .) ] + ! MINUS [ reduce using rule 50 (expression -> expression LESS expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -7748,96 +7820,96 @@ state 129 ! POINTER [ shift and go to state 75 ] -state 130 +state 131 - (50) expression -> expression GREATER expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 50 (expression -> expression GREATER expression .) - OR reduce using rule 50 (expression -> expression GREATER expression .) - AND reduce using rule 50 (expression -> expression GREATER expression .) - EQUAL reduce using rule 50 (expression -> expression GREATER expression .) - NOT_EQUAL reduce using rule 50 (expression -> expression GREATER expression .) - LESS reduce using rule 50 (expression -> expression GREATER expression .) - GREATER reduce using rule 50 (expression -> expression GREATER expression .) - LESS_EQUAL reduce using rule 50 (expression -> expression GREATER expression .) - GREATER_EQUAL reduce using rule 50 (expression -> expression GREATER expression .) - CONNECT reduce using rule 50 (expression -> expression GREATER expression .) - DOT reduce using rule 50 (expression -> expression GREATER expression .) - POINTER reduce using rule 50 (expression -> expression GREATER expression .) - DELETE reduce using rule 50 (expression -> expression GREATER expression .) - DECLARE reduce using rule 50 (expression -> expression GREATER expression .) - PUBLIC reduce using rule 50 (expression -> expression GREATER expression .) - PRIVATE reduce using rule 50 (expression -> expression GREATER expression .) - CONSTANT reduce using rule 50 (expression -> expression GREATER expression .) - INPUT reduce using rule 50 (expression -> expression GREATER expression .) - OUTPUT reduce using rule 50 (expression -> expression GREATER expression .) - _OUTPUT reduce using rule 50 (expression -> expression GREATER expression .) - IF reduce using rule 50 (expression -> expression GREATER expression .) - CASE reduce using rule 50 (expression -> expression GREATER expression .) - FOR reduce using rule 50 (expression -> expression GREATER expression .) - REPEAT reduce using rule 50 (expression -> expression GREATER expression .) - WHILE reduce using rule 50 (expression -> expression GREATER expression .) - PROCEDURE reduce using rule 50 (expression -> expression GREATER expression .) - CALL reduce using rule 50 (expression -> expression GREATER expression .) - FUNCTION reduce using rule 50 (expression -> expression GREATER expression .) - RETURN reduce using rule 50 (expression -> expression GREATER expression .) - OPENFILE reduce using rule 50 (expression -> expression GREATER expression .) - READFILE reduce using rule 50 (expression -> expression GREATER expression .) - WRITEFILE reduce using rule 50 (expression -> expression GREATER expression .) - CLOSEFILE reduce using rule 50 (expression -> expression GREATER expression .) - SEEK reduce using rule 50 (expression -> expression GREATER expression .) - TYPE reduce using rule 50 (expression -> expression GREATER expression .) - PASS reduce using rule 50 (expression -> expression GREATER expression .) - IMPORT reduce using rule 50 (expression -> expression GREATER expression .) - CLASS reduce using rule 50 (expression -> expression GREATER expression .) - LEFT_SQUARE reduce using rule 50 (expression -> expression GREATER expression .) - ID reduce using rule 50 (expression -> expression GREATER expression .) - NOT reduce using rule 50 (expression -> expression GREATER expression .) - LEFT_PAREN reduce using rule 50 (expression -> expression GREATER expression .) - DATE reduce using rule 50 (expression -> expression GREATER expression .) - BOOLEAN reduce using rule 50 (expression -> expression GREATER expression .) - CHAR reduce using rule 50 (expression -> expression GREATER expression .) - STRING reduce using rule 50 (expression -> expression GREATER expression .) - REAL reduce using rule 50 (expression -> expression GREATER expression .) - INTEGER reduce using rule 50 (expression -> expression GREATER expression .) - NEW reduce using rule 50 (expression -> expression GREATER expression .) - $end reduce using rule 50 (expression -> expression GREATER expression .) - RIGHT_SQUARE reduce using rule 50 (expression -> expression GREATER expression .) - COMMA reduce using rule 50 (expression -> expression GREATER expression .) - UNTIL reduce using rule 50 (expression -> expression GREATER expression .) - ENDWHILE reduce using rule 50 (expression -> expression GREATER expression .) - ENDTYPE reduce using rule 50 (expression -> expression GREATER expression .) - ENDCLASS reduce using rule 50 (expression -> expression GREATER expression .) - ELSE reduce using rule 50 (expression -> expression GREATER expression .) - ENDIF reduce using rule 50 (expression -> expression GREATER expression .) - ENDPROCEDURE reduce using rule 50 (expression -> expression GREATER expression .) - SEMICOLON reduce using rule 50 (expression -> expression GREATER expression .) - NEXT reduce using rule 50 (expression -> expression GREATER expression .) - ENDFUNCTION reduce using rule 50 (expression -> expression GREATER expression .) - THEN reduce using rule 50 (expression -> expression GREATER expression .) - DO reduce using rule 50 (expression -> expression GREATER expression .) - RIGHT_PAREN reduce using rule 50 (expression -> expression GREATER expression .) - OTHERWISE reduce using rule 50 (expression -> expression GREATER expression .) - TO reduce using rule 50 (expression -> expression GREATER expression .) - COLON reduce using rule 50 (expression -> expression GREATER expression .) - STEP reduce using rule 50 (expression -> expression GREATER expression .) + (51) expression -> expression GREATER expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 51 (expression -> expression GREATER expression .) + OR reduce using rule 51 (expression -> expression GREATER expression .) + AND reduce using rule 51 (expression -> expression GREATER expression .) + EQUAL reduce using rule 51 (expression -> expression GREATER expression .) + NOT_EQUAL reduce using rule 51 (expression -> expression GREATER expression .) + LESS reduce using rule 51 (expression -> expression GREATER expression .) + GREATER reduce using rule 51 (expression -> expression GREATER expression .) + LESS_EQUAL reduce using rule 51 (expression -> expression GREATER expression .) + GREATER_EQUAL reduce using rule 51 (expression -> expression GREATER expression .) + CONNECT reduce using rule 51 (expression -> expression GREATER expression .) + DOT reduce using rule 51 (expression -> expression GREATER expression .) + POINTER reduce using rule 51 (expression -> expression GREATER expression .) + DELETE reduce using rule 51 (expression -> expression GREATER expression .) + DECLARE reduce using rule 51 (expression -> expression GREATER expression .) + PUBLIC reduce using rule 51 (expression -> expression GREATER expression .) + PRIVATE reduce using rule 51 (expression -> expression GREATER expression .) + CONSTANT reduce using rule 51 (expression -> expression GREATER expression .) + INPUT reduce using rule 51 (expression -> expression GREATER expression .) + OUTPUT reduce using rule 51 (expression -> expression GREATER expression .) + _OUTPUT reduce using rule 51 (expression -> expression GREATER expression .) + IF reduce using rule 51 (expression -> expression GREATER expression .) + CASE reduce using rule 51 (expression -> expression GREATER expression .) + FOR reduce using rule 51 (expression -> expression GREATER expression .) + REPEAT reduce using rule 51 (expression -> expression GREATER expression .) + WHILE reduce using rule 51 (expression -> expression GREATER expression .) + PROCEDURE reduce using rule 51 (expression -> expression GREATER expression .) + CALL reduce using rule 51 (expression -> expression GREATER expression .) + FUNCTION reduce using rule 51 (expression -> expression GREATER expression .) + RETURN reduce using rule 51 (expression -> expression GREATER expression .) + OPENFILE reduce using rule 51 (expression -> expression GREATER expression .) + READFILE reduce using rule 51 (expression -> expression GREATER expression .) + WRITEFILE reduce using rule 51 (expression -> expression GREATER expression .) + CLOSEFILE reduce using rule 51 (expression -> expression GREATER expression .) + SEEK reduce using rule 51 (expression -> expression GREATER expression .) + TYPE reduce using rule 51 (expression -> expression GREATER expression .) + PASS reduce using rule 51 (expression -> expression GREATER expression .) + IMPORT reduce using rule 51 (expression -> expression GREATER expression .) + CLASS reduce using rule 51 (expression -> expression GREATER expression .) + LEFT_SQUARE reduce using rule 51 (expression -> expression GREATER expression .) + ID reduce using rule 51 (expression -> expression GREATER expression .) + NOT reduce using rule 51 (expression -> expression GREATER expression .) + LEFT_PAREN reduce using rule 51 (expression -> expression GREATER expression .) + DATE reduce using rule 51 (expression -> expression GREATER expression .) + BOOLEAN reduce using rule 51 (expression -> expression GREATER expression .) + CHAR reduce using rule 51 (expression -> expression GREATER expression .) + STRING reduce using rule 51 (expression -> expression GREATER expression .) + REAL reduce using rule 51 (expression -> expression GREATER expression .) + INTEGER reduce using rule 51 (expression -> expression GREATER expression .) + NEW reduce using rule 51 (expression -> expression GREATER expression .) + $end reduce using rule 51 (expression -> expression GREATER expression .) + RIGHT_SQUARE reduce using rule 51 (expression -> expression GREATER expression .) + COMMA reduce using rule 51 (expression -> expression GREATER expression .) + UNTIL reduce using rule 51 (expression -> expression GREATER expression .) + ENDWHILE reduce using rule 51 (expression -> expression GREATER expression .) + ENDTYPE reduce using rule 51 (expression -> expression GREATER expression .) + ENDCLASS reduce using rule 51 (expression -> expression GREATER expression .) + ELSE reduce using rule 51 (expression -> expression GREATER expression .) + ENDIF reduce using rule 51 (expression -> expression GREATER expression .) + ENDPROCEDURE reduce using rule 51 (expression -> expression GREATER expression .) + SEMICOLON reduce using rule 51 (expression -> expression GREATER expression .) + NEXT reduce using rule 51 (expression -> expression GREATER expression .) + ENDFUNCTION reduce using rule 51 (expression -> expression GREATER expression .) + THEN reduce using rule 51 (expression -> expression GREATER expression .) + DO reduce using rule 51 (expression -> expression GREATER expression .) + RIGHT_PAREN reduce using rule 51 (expression -> expression GREATER expression .) + OTHERWISE reduce using rule 51 (expression -> expression GREATER expression .) + TO reduce using rule 51 (expression -> expression GREATER expression .) + COLON reduce using rule 51 (expression -> expression GREATER expression .) + STEP reduce using rule 51 (expression -> expression GREATER expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 @@ -7845,12 +7917,12 @@ state 130 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! MOD [ reduce using rule 50 (expression -> expression GREATER expression .) ] - ! DIV [ reduce using rule 50 (expression -> expression GREATER expression .) ] - ! MUL [ reduce using rule 50 (expression -> expression GREATER expression .) ] - ! N_DIV [ reduce using rule 50 (expression -> expression GREATER expression .) ] - ! PLUS [ reduce using rule 50 (expression -> expression GREATER expression .) ] - ! MINUS [ reduce using rule 50 (expression -> expression GREATER expression .) ] + ! MOD [ reduce using rule 51 (expression -> expression GREATER expression .) ] + ! DIV [ reduce using rule 51 (expression -> expression GREATER expression .) ] + ! MUL [ reduce using rule 51 (expression -> expression GREATER expression .) ] + ! N_DIV [ reduce using rule 51 (expression -> expression GREATER expression .) ] + ! PLUS [ reduce using rule 51 (expression -> expression GREATER expression .) ] + ! MINUS [ reduce using rule 51 (expression -> expression GREATER expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -7864,96 +7936,96 @@ state 130 ! POINTER [ shift and go to state 75 ] -state 131 +state 132 - (51) expression -> expression LESS_EQUAL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - OR reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - AND reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - EQUAL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - NOT_EQUAL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - LESS reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - GREATER reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - LESS_EQUAL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - GREATER_EQUAL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CONNECT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - DOT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - POINTER reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - DELETE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - DECLARE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - PUBLIC reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - PRIVATE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CONSTANT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - INPUT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - OUTPUT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - _OUTPUT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - IF reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CASE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - FOR reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - REPEAT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - WHILE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - PROCEDURE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CALL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - FUNCTION reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - RETURN reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - OPENFILE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - READFILE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - WRITEFILE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CLOSEFILE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - SEEK reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - TYPE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - PASS reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - IMPORT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CLASS reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - LEFT_SQUARE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ID reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - NOT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - LEFT_PAREN reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - DATE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - BOOLEAN reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - CHAR reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - STRING reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - REAL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - INTEGER reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - NEW reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - $end reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - RIGHT_SQUARE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - COMMA reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - UNTIL reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ENDWHILE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ENDTYPE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ENDCLASS reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ELSE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ENDIF reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ENDPROCEDURE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - SEMICOLON reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - NEXT reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - ENDFUNCTION reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - THEN reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - DO reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - RIGHT_PAREN reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - OTHERWISE reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - TO reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - COLON reduce using rule 51 (expression -> expression LESS_EQUAL expression .) - STEP reduce using rule 51 (expression -> expression LESS_EQUAL expression .) + (52) expression -> expression LESS_EQUAL expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + OR reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + AND reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + EQUAL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + NOT_EQUAL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + LESS reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + GREATER reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + LESS_EQUAL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + GREATER_EQUAL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CONNECT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + DOT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + POINTER reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + DELETE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + DECLARE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + PUBLIC reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + PRIVATE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CONSTANT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + INPUT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + OUTPUT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + _OUTPUT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + IF reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CASE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + FOR reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + REPEAT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + WHILE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + PROCEDURE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CALL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + FUNCTION reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + RETURN reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + OPENFILE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + READFILE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + WRITEFILE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CLOSEFILE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + SEEK reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + TYPE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + PASS reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + IMPORT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CLASS reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + LEFT_SQUARE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ID reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + NOT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + LEFT_PAREN reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + DATE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + BOOLEAN reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + CHAR reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + STRING reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + REAL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + INTEGER reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + NEW reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + $end reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + RIGHT_SQUARE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + COMMA reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + UNTIL reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ENDWHILE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ENDTYPE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ENDCLASS reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ELSE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ENDIF reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ENDPROCEDURE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + SEMICOLON reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + NEXT reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + ENDFUNCTION reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + THEN reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + DO reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + RIGHT_PAREN reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + OTHERWISE reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + TO reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + COLON reduce using rule 52 (expression -> expression LESS_EQUAL expression .) + STEP reduce using rule 52 (expression -> expression LESS_EQUAL expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 @@ -7961,12 +8033,12 @@ state 131 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! MOD [ reduce using rule 51 (expression -> expression LESS_EQUAL expression .) ] - ! DIV [ reduce using rule 51 (expression -> expression LESS_EQUAL expression .) ] - ! MUL [ reduce using rule 51 (expression -> expression LESS_EQUAL expression .) ] - ! N_DIV [ reduce using rule 51 (expression -> expression LESS_EQUAL expression .) ] - ! PLUS [ reduce using rule 51 (expression -> expression LESS_EQUAL expression .) ] - ! MINUS [ reduce using rule 51 (expression -> expression LESS_EQUAL expression .) ] + ! MOD [ reduce using rule 52 (expression -> expression LESS_EQUAL expression .) ] + ! DIV [ reduce using rule 52 (expression -> expression LESS_EQUAL expression .) ] + ! MUL [ reduce using rule 52 (expression -> expression LESS_EQUAL expression .) ] + ! N_DIV [ reduce using rule 52 (expression -> expression LESS_EQUAL expression .) ] + ! PLUS [ reduce using rule 52 (expression -> expression LESS_EQUAL expression .) ] + ! MINUS [ reduce using rule 52 (expression -> expression LESS_EQUAL expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -7980,96 +8052,96 @@ state 131 ! POINTER [ shift and go to state 75 ] -state 132 +state 133 - (52) expression -> expression GREATER_EQUAL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - OR reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - AND reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - EQUAL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - NOT_EQUAL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - LESS reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - GREATER reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - LESS_EQUAL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - GREATER_EQUAL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CONNECT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - DOT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - POINTER reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - DELETE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - DECLARE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - PUBLIC reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - PRIVATE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CONSTANT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - INPUT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - OUTPUT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - _OUTPUT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - IF reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CASE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - FOR reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - REPEAT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - WHILE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - PROCEDURE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CALL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - FUNCTION reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - RETURN reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - OPENFILE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - READFILE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - WRITEFILE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CLOSEFILE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - SEEK reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - TYPE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - PASS reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - IMPORT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CLASS reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - LEFT_SQUARE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ID reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - NOT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - LEFT_PAREN reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - DATE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - BOOLEAN reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - CHAR reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - STRING reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - REAL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - INTEGER reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - NEW reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - $end reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - RIGHT_SQUARE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - COMMA reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - UNTIL reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ENDWHILE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ENDTYPE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ENDCLASS reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ELSE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ENDIF reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ENDPROCEDURE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - SEMICOLON reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - NEXT reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - ENDFUNCTION reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - THEN reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - DO reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - RIGHT_PAREN reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - OTHERWISE reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - TO reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - COLON reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) - STEP reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) + (53) expression -> expression GREATER_EQUAL expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + OR reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + AND reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + EQUAL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + NOT_EQUAL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + LESS reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + GREATER reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + LESS_EQUAL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + GREATER_EQUAL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CONNECT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + DOT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + POINTER reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + DELETE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + DECLARE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + PUBLIC reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + PRIVATE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CONSTANT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + INPUT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + OUTPUT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + _OUTPUT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + IF reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CASE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + FOR reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + REPEAT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + WHILE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + PROCEDURE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CALL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + FUNCTION reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + RETURN reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + OPENFILE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + READFILE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + WRITEFILE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CLOSEFILE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + SEEK reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + TYPE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + PASS reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + IMPORT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CLASS reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + LEFT_SQUARE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ID reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + NOT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + LEFT_PAREN reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + DATE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + BOOLEAN reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + CHAR reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + STRING reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + REAL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + INTEGER reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + NEW reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + $end reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + RIGHT_SQUARE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + COMMA reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + UNTIL reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ENDWHILE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ENDTYPE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ENDCLASS reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ELSE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ENDIF reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ENDPROCEDURE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + SEMICOLON reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + NEXT reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + ENDFUNCTION reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + THEN reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + DO reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + RIGHT_PAREN reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + OTHERWISE reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + TO reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + COLON reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) + STEP reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 @@ -8077,12 +8149,12 @@ state 132 PLUS shift and go to state 71 MINUS shift and go to state 72 - ! MOD [ reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) ] - ! DIV [ reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) ] - ! MUL [ reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) ] - ! N_DIV [ reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) ] - ! PLUS [ reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) ] - ! MINUS [ reduce using rule 52 (expression -> expression GREATER_EQUAL expression .) ] + ! MOD [ reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) ] + ! DIV [ reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) ] + ! MUL [ reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) ] + ! N_DIV [ reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) ] + ! PLUS [ reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) ] + ! MINUS [ reduce using rule 53 (expression -> expression GREATER_EQUAL expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -8096,102 +8168,102 @@ state 132 ! POINTER [ shift and go to state 75 ] -state 133 +state 134 - (53) expression -> expression MOD expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 53 (expression -> expression MOD expression .) - OR reduce using rule 53 (expression -> expression MOD expression .) - AND reduce using rule 53 (expression -> expression MOD expression .) - EQUAL reduce using rule 53 (expression -> expression MOD expression .) - NOT_EQUAL reduce using rule 53 (expression -> expression MOD expression .) - LESS reduce using rule 53 (expression -> expression MOD expression .) - GREATER reduce using rule 53 (expression -> expression MOD expression .) - LESS_EQUAL reduce using rule 53 (expression -> expression MOD expression .) - GREATER_EQUAL reduce using rule 53 (expression -> expression MOD expression .) - MOD reduce using rule 53 (expression -> expression MOD expression .) - DIV reduce using rule 53 (expression -> expression MOD expression .) - MUL reduce using rule 53 (expression -> expression MOD expression .) - N_DIV reduce using rule 53 (expression -> expression MOD expression .) - PLUS reduce using rule 53 (expression -> expression MOD expression .) - MINUS reduce using rule 53 (expression -> expression MOD expression .) - CONNECT reduce using rule 53 (expression -> expression MOD expression .) - DOT reduce using rule 53 (expression -> expression MOD expression .) - POINTER reduce using rule 53 (expression -> expression MOD expression .) - DELETE reduce using rule 53 (expression -> expression MOD expression .) - DECLARE reduce using rule 53 (expression -> expression MOD expression .) - PUBLIC reduce using rule 53 (expression -> expression MOD expression .) - PRIVATE reduce using rule 53 (expression -> expression MOD expression .) - CONSTANT reduce using rule 53 (expression -> expression MOD expression .) - INPUT reduce using rule 53 (expression -> expression MOD expression .) - OUTPUT reduce using rule 53 (expression -> expression MOD expression .) - _OUTPUT reduce using rule 53 (expression -> expression MOD expression .) - IF reduce using rule 53 (expression -> expression MOD expression .) - CASE reduce using rule 53 (expression -> expression MOD expression .) - FOR reduce using rule 53 (expression -> expression MOD expression .) - REPEAT reduce using rule 53 (expression -> expression MOD expression .) - WHILE reduce using rule 53 (expression -> expression MOD expression .) - PROCEDURE reduce using rule 53 (expression -> expression MOD expression .) - CALL reduce using rule 53 (expression -> expression MOD expression .) - FUNCTION reduce using rule 53 (expression -> expression MOD expression .) - RETURN reduce using rule 53 (expression -> expression MOD expression .) - OPENFILE reduce using rule 53 (expression -> expression MOD expression .) - READFILE reduce using rule 53 (expression -> expression MOD expression .) - WRITEFILE reduce using rule 53 (expression -> expression MOD expression .) - CLOSEFILE reduce using rule 53 (expression -> expression MOD expression .) - SEEK reduce using rule 53 (expression -> expression MOD expression .) - TYPE reduce using rule 53 (expression -> expression MOD expression .) - PASS reduce using rule 53 (expression -> expression MOD expression .) - IMPORT reduce using rule 53 (expression -> expression MOD expression .) - CLASS reduce using rule 53 (expression -> expression MOD expression .) - LEFT_SQUARE reduce using rule 53 (expression -> expression MOD expression .) - ID reduce using rule 53 (expression -> expression MOD expression .) - NOT reduce using rule 53 (expression -> expression MOD expression .) - LEFT_PAREN reduce using rule 53 (expression -> expression MOD expression .) - DATE reduce using rule 53 (expression -> expression MOD expression .) - BOOLEAN reduce using rule 53 (expression -> expression MOD expression .) - CHAR reduce using rule 53 (expression -> expression MOD expression .) - STRING reduce using rule 53 (expression -> expression MOD expression .) - REAL reduce using rule 53 (expression -> expression MOD expression .) - INTEGER reduce using rule 53 (expression -> expression MOD expression .) - NEW reduce using rule 53 (expression -> expression MOD expression .) - $end reduce using rule 53 (expression -> expression MOD expression .) - RIGHT_SQUARE reduce using rule 53 (expression -> expression MOD expression .) - COMMA reduce using rule 53 (expression -> expression MOD expression .) - UNTIL reduce using rule 53 (expression -> expression MOD expression .) - ENDWHILE reduce using rule 53 (expression -> expression MOD expression .) - ENDTYPE reduce using rule 53 (expression -> expression MOD expression .) - ENDCLASS reduce using rule 53 (expression -> expression MOD expression .) - ELSE reduce using rule 53 (expression -> expression MOD expression .) - ENDIF reduce using rule 53 (expression -> expression MOD expression .) - ENDPROCEDURE reduce using rule 53 (expression -> expression MOD expression .) - SEMICOLON reduce using rule 53 (expression -> expression MOD expression .) - NEXT reduce using rule 53 (expression -> expression MOD expression .) - ENDFUNCTION reduce using rule 53 (expression -> expression MOD expression .) - THEN reduce using rule 53 (expression -> expression MOD expression .) - DO reduce using rule 53 (expression -> expression MOD expression .) - RIGHT_PAREN reduce using rule 53 (expression -> expression MOD expression .) - OTHERWISE reduce using rule 53 (expression -> expression MOD expression .) - TO reduce using rule 53 (expression -> expression MOD expression .) - COLON reduce using rule 53 (expression -> expression MOD expression .) - STEP reduce using rule 53 (expression -> expression MOD expression .) + (54) expression -> expression MOD expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 54 (expression -> expression MOD expression .) + OR reduce using rule 54 (expression -> expression MOD expression .) + AND reduce using rule 54 (expression -> expression MOD expression .) + EQUAL reduce using rule 54 (expression -> expression MOD expression .) + NOT_EQUAL reduce using rule 54 (expression -> expression MOD expression .) + LESS reduce using rule 54 (expression -> expression MOD expression .) + GREATER reduce using rule 54 (expression -> expression MOD expression .) + LESS_EQUAL reduce using rule 54 (expression -> expression MOD expression .) + GREATER_EQUAL reduce using rule 54 (expression -> expression MOD expression .) + MOD reduce using rule 54 (expression -> expression MOD expression .) + DIV reduce using rule 54 (expression -> expression MOD expression .) + MUL reduce using rule 54 (expression -> expression MOD expression .) + N_DIV reduce using rule 54 (expression -> expression MOD expression .) + PLUS reduce using rule 54 (expression -> expression MOD expression .) + MINUS reduce using rule 54 (expression -> expression MOD expression .) + CONNECT reduce using rule 54 (expression -> expression MOD expression .) + DOT reduce using rule 54 (expression -> expression MOD expression .) + POINTER reduce using rule 54 (expression -> expression MOD expression .) + DELETE reduce using rule 54 (expression -> expression MOD expression .) + DECLARE reduce using rule 54 (expression -> expression MOD expression .) + PUBLIC reduce using rule 54 (expression -> expression MOD expression .) + PRIVATE reduce using rule 54 (expression -> expression MOD expression .) + CONSTANT reduce using rule 54 (expression -> expression MOD expression .) + INPUT reduce using rule 54 (expression -> expression MOD expression .) + OUTPUT reduce using rule 54 (expression -> expression MOD expression .) + _OUTPUT reduce using rule 54 (expression -> expression MOD expression .) + IF reduce using rule 54 (expression -> expression MOD expression .) + CASE reduce using rule 54 (expression -> expression MOD expression .) + FOR reduce using rule 54 (expression -> expression MOD expression .) + REPEAT reduce using rule 54 (expression -> expression MOD expression .) + WHILE reduce using rule 54 (expression -> expression MOD expression .) + PROCEDURE reduce using rule 54 (expression -> expression MOD expression .) + CALL reduce using rule 54 (expression -> expression MOD expression .) + FUNCTION reduce using rule 54 (expression -> expression MOD expression .) + RETURN reduce using rule 54 (expression -> expression MOD expression .) + OPENFILE reduce using rule 54 (expression -> expression MOD expression .) + READFILE reduce using rule 54 (expression -> expression MOD expression .) + WRITEFILE reduce using rule 54 (expression -> expression MOD expression .) + CLOSEFILE reduce using rule 54 (expression -> expression MOD expression .) + SEEK reduce using rule 54 (expression -> expression MOD expression .) + TYPE reduce using rule 54 (expression -> expression MOD expression .) + PASS reduce using rule 54 (expression -> expression MOD expression .) + IMPORT reduce using rule 54 (expression -> expression MOD expression .) + CLASS reduce using rule 54 (expression -> expression MOD expression .) + LEFT_SQUARE reduce using rule 54 (expression -> expression MOD expression .) + ID reduce using rule 54 (expression -> expression MOD expression .) + NOT reduce using rule 54 (expression -> expression MOD expression .) + LEFT_PAREN reduce using rule 54 (expression -> expression MOD expression .) + DATE reduce using rule 54 (expression -> expression MOD expression .) + BOOLEAN reduce using rule 54 (expression -> expression MOD expression .) + CHAR reduce using rule 54 (expression -> expression MOD expression .) + STRING reduce using rule 54 (expression -> expression MOD expression .) + REAL reduce using rule 54 (expression -> expression MOD expression .) + INTEGER reduce using rule 54 (expression -> expression MOD expression .) + NEW reduce using rule 54 (expression -> expression MOD expression .) + $end reduce using rule 54 (expression -> expression MOD expression .) + RIGHT_SQUARE reduce using rule 54 (expression -> expression MOD expression .) + COMMA reduce using rule 54 (expression -> expression MOD expression .) + UNTIL reduce using rule 54 (expression -> expression MOD expression .) + ENDWHILE reduce using rule 54 (expression -> expression MOD expression .) + ENDTYPE reduce using rule 54 (expression -> expression MOD expression .) + ENDCLASS reduce using rule 54 (expression -> expression MOD expression .) + ELSE reduce using rule 54 (expression -> expression MOD expression .) + ENDIF reduce using rule 54 (expression -> expression MOD expression .) + ENDPROCEDURE reduce using rule 54 (expression -> expression MOD expression .) + SEMICOLON reduce using rule 54 (expression -> expression MOD expression .) + NEXT reduce using rule 54 (expression -> expression MOD expression .) + ENDFUNCTION reduce using rule 54 (expression -> expression MOD expression .) + THEN reduce using rule 54 (expression -> expression MOD expression .) + DO reduce using rule 54 (expression -> expression MOD expression .) + RIGHT_PAREN reduce using rule 54 (expression -> expression MOD expression .) + OTHERWISE reduce using rule 54 (expression -> expression MOD expression .) + TO reduce using rule 54 (expression -> expression MOD expression .) + COLON reduce using rule 54 (expression -> expression MOD expression .) + STEP reduce using rule 54 (expression -> expression MOD expression .) ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] @@ -8212,102 +8284,102 @@ state 133 ! POINTER [ shift and go to state 75 ] -state 134 +state 135 - (54) expression -> expression DIV expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 54 (expression -> expression DIV expression .) - OR reduce using rule 54 (expression -> expression DIV expression .) - AND reduce using rule 54 (expression -> expression DIV expression .) - EQUAL reduce using rule 54 (expression -> expression DIV expression .) - NOT_EQUAL reduce using rule 54 (expression -> expression DIV expression .) - LESS reduce using rule 54 (expression -> expression DIV expression .) - GREATER reduce using rule 54 (expression -> expression DIV expression .) - LESS_EQUAL reduce using rule 54 (expression -> expression DIV expression .) - GREATER_EQUAL reduce using rule 54 (expression -> expression DIV expression .) - MOD reduce using rule 54 (expression -> expression DIV expression .) - DIV reduce using rule 54 (expression -> expression DIV expression .) - MUL reduce using rule 54 (expression -> expression DIV expression .) - N_DIV reduce using rule 54 (expression -> expression DIV expression .) - PLUS reduce using rule 54 (expression -> expression DIV expression .) - MINUS reduce using rule 54 (expression -> expression DIV expression .) - CONNECT reduce using rule 54 (expression -> expression DIV expression .) - DOT reduce using rule 54 (expression -> expression DIV expression .) - POINTER reduce using rule 54 (expression -> expression DIV expression .) - DELETE reduce using rule 54 (expression -> expression DIV expression .) - DECLARE reduce using rule 54 (expression -> expression DIV expression .) - PUBLIC reduce using rule 54 (expression -> expression DIV expression .) - PRIVATE reduce using rule 54 (expression -> expression DIV expression .) - CONSTANT reduce using rule 54 (expression -> expression DIV expression .) - INPUT reduce using rule 54 (expression -> expression DIV expression .) - OUTPUT reduce using rule 54 (expression -> expression DIV expression .) - _OUTPUT reduce using rule 54 (expression -> expression DIV expression .) - IF reduce using rule 54 (expression -> expression DIV expression .) - CASE reduce using rule 54 (expression -> expression DIV expression .) - FOR reduce using rule 54 (expression -> expression DIV expression .) - REPEAT reduce using rule 54 (expression -> expression DIV expression .) - WHILE reduce using rule 54 (expression -> expression DIV expression .) - PROCEDURE reduce using rule 54 (expression -> expression DIV expression .) - CALL reduce using rule 54 (expression -> expression DIV expression .) - FUNCTION reduce using rule 54 (expression -> expression DIV expression .) - RETURN reduce using rule 54 (expression -> expression DIV expression .) - OPENFILE reduce using rule 54 (expression -> expression DIV expression .) - READFILE reduce using rule 54 (expression -> expression DIV expression .) - WRITEFILE reduce using rule 54 (expression -> expression DIV expression .) - CLOSEFILE reduce using rule 54 (expression -> expression DIV expression .) - SEEK reduce using rule 54 (expression -> expression DIV expression .) - TYPE reduce using rule 54 (expression -> expression DIV expression .) - PASS reduce using rule 54 (expression -> expression DIV expression .) - IMPORT reduce using rule 54 (expression -> expression DIV expression .) - CLASS reduce using rule 54 (expression -> expression DIV expression .) - LEFT_SQUARE reduce using rule 54 (expression -> expression DIV expression .) - ID reduce using rule 54 (expression -> expression DIV expression .) - NOT reduce using rule 54 (expression -> expression DIV expression .) - LEFT_PAREN reduce using rule 54 (expression -> expression DIV expression .) - DATE reduce using rule 54 (expression -> expression DIV expression .) - BOOLEAN reduce using rule 54 (expression -> expression DIV expression .) - CHAR reduce using rule 54 (expression -> expression DIV expression .) - STRING reduce using rule 54 (expression -> expression DIV expression .) - REAL reduce using rule 54 (expression -> expression DIV expression .) - INTEGER reduce using rule 54 (expression -> expression DIV expression .) - NEW reduce using rule 54 (expression -> expression DIV expression .) - $end reduce using rule 54 (expression -> expression DIV expression .) - RIGHT_SQUARE reduce using rule 54 (expression -> expression DIV expression .) - COMMA reduce using rule 54 (expression -> expression DIV expression .) - UNTIL reduce using rule 54 (expression -> expression DIV expression .) - ENDWHILE reduce using rule 54 (expression -> expression DIV expression .) - ENDTYPE reduce using rule 54 (expression -> expression DIV expression .) - ENDCLASS reduce using rule 54 (expression -> expression DIV expression .) - ELSE reduce using rule 54 (expression -> expression DIV expression .) - ENDIF reduce using rule 54 (expression -> expression DIV expression .) - ENDPROCEDURE reduce using rule 54 (expression -> expression DIV expression .) - SEMICOLON reduce using rule 54 (expression -> expression DIV expression .) - NEXT reduce using rule 54 (expression -> expression DIV expression .) - ENDFUNCTION reduce using rule 54 (expression -> expression DIV expression .) - THEN reduce using rule 54 (expression -> expression DIV expression .) - DO reduce using rule 54 (expression -> expression DIV expression .) - RIGHT_PAREN reduce using rule 54 (expression -> expression DIV expression .) - OTHERWISE reduce using rule 54 (expression -> expression DIV expression .) - TO reduce using rule 54 (expression -> expression DIV expression .) - COLON reduce using rule 54 (expression -> expression DIV expression .) - STEP reduce using rule 54 (expression -> expression DIV expression .) + (55) expression -> expression DIV expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 55 (expression -> expression DIV expression .) + OR reduce using rule 55 (expression -> expression DIV expression .) + AND reduce using rule 55 (expression -> expression DIV expression .) + EQUAL reduce using rule 55 (expression -> expression DIV expression .) + NOT_EQUAL reduce using rule 55 (expression -> expression DIV expression .) + LESS reduce using rule 55 (expression -> expression DIV expression .) + GREATER reduce using rule 55 (expression -> expression DIV expression .) + LESS_EQUAL reduce using rule 55 (expression -> expression DIV expression .) + GREATER_EQUAL reduce using rule 55 (expression -> expression DIV expression .) + MOD reduce using rule 55 (expression -> expression DIV expression .) + DIV reduce using rule 55 (expression -> expression DIV expression .) + MUL reduce using rule 55 (expression -> expression DIV expression .) + N_DIV reduce using rule 55 (expression -> expression DIV expression .) + PLUS reduce using rule 55 (expression -> expression DIV expression .) + MINUS reduce using rule 55 (expression -> expression DIV expression .) + CONNECT reduce using rule 55 (expression -> expression DIV expression .) + DOT reduce using rule 55 (expression -> expression DIV expression .) + POINTER reduce using rule 55 (expression -> expression DIV expression .) + DELETE reduce using rule 55 (expression -> expression DIV expression .) + DECLARE reduce using rule 55 (expression -> expression DIV expression .) + PUBLIC reduce using rule 55 (expression -> expression DIV expression .) + PRIVATE reduce using rule 55 (expression -> expression DIV expression .) + CONSTANT reduce using rule 55 (expression -> expression DIV expression .) + INPUT reduce using rule 55 (expression -> expression DIV expression .) + OUTPUT reduce using rule 55 (expression -> expression DIV expression .) + _OUTPUT reduce using rule 55 (expression -> expression DIV expression .) + IF reduce using rule 55 (expression -> expression DIV expression .) + CASE reduce using rule 55 (expression -> expression DIV expression .) + FOR reduce using rule 55 (expression -> expression DIV expression .) + REPEAT reduce using rule 55 (expression -> expression DIV expression .) + WHILE reduce using rule 55 (expression -> expression DIV expression .) + PROCEDURE reduce using rule 55 (expression -> expression DIV expression .) + CALL reduce using rule 55 (expression -> expression DIV expression .) + FUNCTION reduce using rule 55 (expression -> expression DIV expression .) + RETURN reduce using rule 55 (expression -> expression DIV expression .) + OPENFILE reduce using rule 55 (expression -> expression DIV expression .) + READFILE reduce using rule 55 (expression -> expression DIV expression .) + WRITEFILE reduce using rule 55 (expression -> expression DIV expression .) + CLOSEFILE reduce using rule 55 (expression -> expression DIV expression .) + SEEK reduce using rule 55 (expression -> expression DIV expression .) + TYPE reduce using rule 55 (expression -> expression DIV expression .) + PASS reduce using rule 55 (expression -> expression DIV expression .) + IMPORT reduce using rule 55 (expression -> expression DIV expression .) + CLASS reduce using rule 55 (expression -> expression DIV expression .) + LEFT_SQUARE reduce using rule 55 (expression -> expression DIV expression .) + ID reduce using rule 55 (expression -> expression DIV expression .) + NOT reduce using rule 55 (expression -> expression DIV expression .) + LEFT_PAREN reduce using rule 55 (expression -> expression DIV expression .) + DATE reduce using rule 55 (expression -> expression DIV expression .) + BOOLEAN reduce using rule 55 (expression -> expression DIV expression .) + CHAR reduce using rule 55 (expression -> expression DIV expression .) + STRING reduce using rule 55 (expression -> expression DIV expression .) + REAL reduce using rule 55 (expression -> expression DIV expression .) + INTEGER reduce using rule 55 (expression -> expression DIV expression .) + NEW reduce using rule 55 (expression -> expression DIV expression .) + $end reduce using rule 55 (expression -> expression DIV expression .) + RIGHT_SQUARE reduce using rule 55 (expression -> expression DIV expression .) + COMMA reduce using rule 55 (expression -> expression DIV expression .) + UNTIL reduce using rule 55 (expression -> expression DIV expression .) + ENDWHILE reduce using rule 55 (expression -> expression DIV expression .) + ENDTYPE reduce using rule 55 (expression -> expression DIV expression .) + ENDCLASS reduce using rule 55 (expression -> expression DIV expression .) + ELSE reduce using rule 55 (expression -> expression DIV expression .) + ENDIF reduce using rule 55 (expression -> expression DIV expression .) + ENDPROCEDURE reduce using rule 55 (expression -> expression DIV expression .) + SEMICOLON reduce using rule 55 (expression -> expression DIV expression .) + NEXT reduce using rule 55 (expression -> expression DIV expression .) + ENDFUNCTION reduce using rule 55 (expression -> expression DIV expression .) + THEN reduce using rule 55 (expression -> expression DIV expression .) + DO reduce using rule 55 (expression -> expression DIV expression .) + RIGHT_PAREN reduce using rule 55 (expression -> expression DIV expression .) + OTHERWISE reduce using rule 55 (expression -> expression DIV expression .) + TO reduce using rule 55 (expression -> expression DIV expression .) + COLON reduce using rule 55 (expression -> expression DIV expression .) + STEP reduce using rule 55 (expression -> expression DIV expression .) ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] @@ -8328,102 +8400,102 @@ state 134 ! POINTER [ shift and go to state 75 ] -state 135 +state 136 - (55) expression -> expression MUL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 55 (expression -> expression MUL expression .) - OR reduce using rule 55 (expression -> expression MUL expression .) - AND reduce using rule 55 (expression -> expression MUL expression .) - EQUAL reduce using rule 55 (expression -> expression MUL expression .) - NOT_EQUAL reduce using rule 55 (expression -> expression MUL expression .) - LESS reduce using rule 55 (expression -> expression MUL expression .) - GREATER reduce using rule 55 (expression -> expression MUL expression .) - LESS_EQUAL reduce using rule 55 (expression -> expression MUL expression .) - GREATER_EQUAL reduce using rule 55 (expression -> expression MUL expression .) - MOD reduce using rule 55 (expression -> expression MUL expression .) - DIV reduce using rule 55 (expression -> expression MUL expression .) - MUL reduce using rule 55 (expression -> expression MUL expression .) - N_DIV reduce using rule 55 (expression -> expression MUL expression .) - PLUS reduce using rule 55 (expression -> expression MUL expression .) - MINUS reduce using rule 55 (expression -> expression MUL expression .) - CONNECT reduce using rule 55 (expression -> expression MUL expression .) - DOT reduce using rule 55 (expression -> expression MUL expression .) - POINTER reduce using rule 55 (expression -> expression MUL expression .) - DELETE reduce using rule 55 (expression -> expression MUL expression .) - DECLARE reduce using rule 55 (expression -> expression MUL expression .) - PUBLIC reduce using rule 55 (expression -> expression MUL expression .) - PRIVATE reduce using rule 55 (expression -> expression MUL expression .) - CONSTANT reduce using rule 55 (expression -> expression MUL expression .) - INPUT reduce using rule 55 (expression -> expression MUL expression .) - OUTPUT reduce using rule 55 (expression -> expression MUL expression .) - _OUTPUT reduce using rule 55 (expression -> expression MUL expression .) - IF reduce using rule 55 (expression -> expression MUL expression .) - CASE reduce using rule 55 (expression -> expression MUL expression .) - FOR reduce using rule 55 (expression -> expression MUL expression .) - REPEAT reduce using rule 55 (expression -> expression MUL expression .) - WHILE reduce using rule 55 (expression -> expression MUL expression .) - PROCEDURE reduce using rule 55 (expression -> expression MUL expression .) - CALL reduce using rule 55 (expression -> expression MUL expression .) - FUNCTION reduce using rule 55 (expression -> expression MUL expression .) - RETURN reduce using rule 55 (expression -> expression MUL expression .) - OPENFILE reduce using rule 55 (expression -> expression MUL expression .) - READFILE reduce using rule 55 (expression -> expression MUL expression .) - WRITEFILE reduce using rule 55 (expression -> expression MUL expression .) - CLOSEFILE reduce using rule 55 (expression -> expression MUL expression .) - SEEK reduce using rule 55 (expression -> expression MUL expression .) - TYPE reduce using rule 55 (expression -> expression MUL expression .) - PASS reduce using rule 55 (expression -> expression MUL expression .) - IMPORT reduce using rule 55 (expression -> expression MUL expression .) - CLASS reduce using rule 55 (expression -> expression MUL expression .) - LEFT_SQUARE reduce using rule 55 (expression -> expression MUL expression .) - ID reduce using rule 55 (expression -> expression MUL expression .) - NOT reduce using rule 55 (expression -> expression MUL expression .) - LEFT_PAREN reduce using rule 55 (expression -> expression MUL expression .) - DATE reduce using rule 55 (expression -> expression MUL expression .) - BOOLEAN reduce using rule 55 (expression -> expression MUL expression .) - CHAR reduce using rule 55 (expression -> expression MUL expression .) - STRING reduce using rule 55 (expression -> expression MUL expression .) - REAL reduce using rule 55 (expression -> expression MUL expression .) - INTEGER reduce using rule 55 (expression -> expression MUL expression .) - NEW reduce using rule 55 (expression -> expression MUL expression .) - $end reduce using rule 55 (expression -> expression MUL expression .) - RIGHT_SQUARE reduce using rule 55 (expression -> expression MUL expression .) - COMMA reduce using rule 55 (expression -> expression MUL expression .) - UNTIL reduce using rule 55 (expression -> expression MUL expression .) - ENDWHILE reduce using rule 55 (expression -> expression MUL expression .) - ENDTYPE reduce using rule 55 (expression -> expression MUL expression .) - ENDCLASS reduce using rule 55 (expression -> expression MUL expression .) - ELSE reduce using rule 55 (expression -> expression MUL expression .) - ENDIF reduce using rule 55 (expression -> expression MUL expression .) - ENDPROCEDURE reduce using rule 55 (expression -> expression MUL expression .) - SEMICOLON reduce using rule 55 (expression -> expression MUL expression .) - NEXT reduce using rule 55 (expression -> expression MUL expression .) - ENDFUNCTION reduce using rule 55 (expression -> expression MUL expression .) - THEN reduce using rule 55 (expression -> expression MUL expression .) - DO reduce using rule 55 (expression -> expression MUL expression .) - RIGHT_PAREN reduce using rule 55 (expression -> expression MUL expression .) - OTHERWISE reduce using rule 55 (expression -> expression MUL expression .) - TO reduce using rule 55 (expression -> expression MUL expression .) - COLON reduce using rule 55 (expression -> expression MUL expression .) - STEP reduce using rule 55 (expression -> expression MUL expression .) + (56) expression -> expression MUL expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 56 (expression -> expression MUL expression .) + OR reduce using rule 56 (expression -> expression MUL expression .) + AND reduce using rule 56 (expression -> expression MUL expression .) + EQUAL reduce using rule 56 (expression -> expression MUL expression .) + NOT_EQUAL reduce using rule 56 (expression -> expression MUL expression .) + LESS reduce using rule 56 (expression -> expression MUL expression .) + GREATER reduce using rule 56 (expression -> expression MUL expression .) + LESS_EQUAL reduce using rule 56 (expression -> expression MUL expression .) + GREATER_EQUAL reduce using rule 56 (expression -> expression MUL expression .) + MOD reduce using rule 56 (expression -> expression MUL expression .) + DIV reduce using rule 56 (expression -> expression MUL expression .) + MUL reduce using rule 56 (expression -> expression MUL expression .) + N_DIV reduce using rule 56 (expression -> expression MUL expression .) + PLUS reduce using rule 56 (expression -> expression MUL expression .) + MINUS reduce using rule 56 (expression -> expression MUL expression .) + CONNECT reduce using rule 56 (expression -> expression MUL expression .) + DOT reduce using rule 56 (expression -> expression MUL expression .) + POINTER reduce using rule 56 (expression -> expression MUL expression .) + DELETE reduce using rule 56 (expression -> expression MUL expression .) + DECLARE reduce using rule 56 (expression -> expression MUL expression .) + PUBLIC reduce using rule 56 (expression -> expression MUL expression .) + PRIVATE reduce using rule 56 (expression -> expression MUL expression .) + CONSTANT reduce using rule 56 (expression -> expression MUL expression .) + INPUT reduce using rule 56 (expression -> expression MUL expression .) + OUTPUT reduce using rule 56 (expression -> expression MUL expression .) + _OUTPUT reduce using rule 56 (expression -> expression MUL expression .) + IF reduce using rule 56 (expression -> expression MUL expression .) + CASE reduce using rule 56 (expression -> expression MUL expression .) + FOR reduce using rule 56 (expression -> expression MUL expression .) + REPEAT reduce using rule 56 (expression -> expression MUL expression .) + WHILE reduce using rule 56 (expression -> expression MUL expression .) + PROCEDURE reduce using rule 56 (expression -> expression MUL expression .) + CALL reduce using rule 56 (expression -> expression MUL expression .) + FUNCTION reduce using rule 56 (expression -> expression MUL expression .) + RETURN reduce using rule 56 (expression -> expression MUL expression .) + OPENFILE reduce using rule 56 (expression -> expression MUL expression .) + READFILE reduce using rule 56 (expression -> expression MUL expression .) + WRITEFILE reduce using rule 56 (expression -> expression MUL expression .) + CLOSEFILE reduce using rule 56 (expression -> expression MUL expression .) + SEEK reduce using rule 56 (expression -> expression MUL expression .) + TYPE reduce using rule 56 (expression -> expression MUL expression .) + PASS reduce using rule 56 (expression -> expression MUL expression .) + IMPORT reduce using rule 56 (expression -> expression MUL expression .) + CLASS reduce using rule 56 (expression -> expression MUL expression .) + LEFT_SQUARE reduce using rule 56 (expression -> expression MUL expression .) + ID reduce using rule 56 (expression -> expression MUL expression .) + NOT reduce using rule 56 (expression -> expression MUL expression .) + LEFT_PAREN reduce using rule 56 (expression -> expression MUL expression .) + DATE reduce using rule 56 (expression -> expression MUL expression .) + BOOLEAN reduce using rule 56 (expression -> expression MUL expression .) + CHAR reduce using rule 56 (expression -> expression MUL expression .) + STRING reduce using rule 56 (expression -> expression MUL expression .) + REAL reduce using rule 56 (expression -> expression MUL expression .) + INTEGER reduce using rule 56 (expression -> expression MUL expression .) + NEW reduce using rule 56 (expression -> expression MUL expression .) + $end reduce using rule 56 (expression -> expression MUL expression .) + RIGHT_SQUARE reduce using rule 56 (expression -> expression MUL expression .) + COMMA reduce using rule 56 (expression -> expression MUL expression .) + UNTIL reduce using rule 56 (expression -> expression MUL expression .) + ENDWHILE reduce using rule 56 (expression -> expression MUL expression .) + ENDTYPE reduce using rule 56 (expression -> expression MUL expression .) + ENDCLASS reduce using rule 56 (expression -> expression MUL expression .) + ELSE reduce using rule 56 (expression -> expression MUL expression .) + ENDIF reduce using rule 56 (expression -> expression MUL expression .) + ENDPROCEDURE reduce using rule 56 (expression -> expression MUL expression .) + SEMICOLON reduce using rule 56 (expression -> expression MUL expression .) + NEXT reduce using rule 56 (expression -> expression MUL expression .) + ENDFUNCTION reduce using rule 56 (expression -> expression MUL expression .) + THEN reduce using rule 56 (expression -> expression MUL expression .) + DO reduce using rule 56 (expression -> expression MUL expression .) + RIGHT_PAREN reduce using rule 56 (expression -> expression MUL expression .) + OTHERWISE reduce using rule 56 (expression -> expression MUL expression .) + TO reduce using rule 56 (expression -> expression MUL expression .) + COLON reduce using rule 56 (expression -> expression MUL expression .) + STEP reduce using rule 56 (expression -> expression MUL expression .) ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] @@ -8444,102 +8516,102 @@ state 135 ! POINTER [ shift and go to state 75 ] -state 136 +state 137 - (56) expression -> expression N_DIV expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 56 (expression -> expression N_DIV expression .) - OR reduce using rule 56 (expression -> expression N_DIV expression .) - AND reduce using rule 56 (expression -> expression N_DIV expression .) - EQUAL reduce using rule 56 (expression -> expression N_DIV expression .) - NOT_EQUAL reduce using rule 56 (expression -> expression N_DIV expression .) - LESS reduce using rule 56 (expression -> expression N_DIV expression .) - GREATER reduce using rule 56 (expression -> expression N_DIV expression .) - LESS_EQUAL reduce using rule 56 (expression -> expression N_DIV expression .) - GREATER_EQUAL reduce using rule 56 (expression -> expression N_DIV expression .) - MOD reduce using rule 56 (expression -> expression N_DIV expression .) - DIV reduce using rule 56 (expression -> expression N_DIV expression .) - MUL reduce using rule 56 (expression -> expression N_DIV expression .) - N_DIV reduce using rule 56 (expression -> expression N_DIV expression .) - PLUS reduce using rule 56 (expression -> expression N_DIV expression .) - MINUS reduce using rule 56 (expression -> expression N_DIV expression .) - CONNECT reduce using rule 56 (expression -> expression N_DIV expression .) - DOT reduce using rule 56 (expression -> expression N_DIV expression .) - POINTER reduce using rule 56 (expression -> expression N_DIV expression .) - DELETE reduce using rule 56 (expression -> expression N_DIV expression .) - DECLARE reduce using rule 56 (expression -> expression N_DIV expression .) - PUBLIC reduce using rule 56 (expression -> expression N_DIV expression .) - PRIVATE reduce using rule 56 (expression -> expression N_DIV expression .) - CONSTANT reduce using rule 56 (expression -> expression N_DIV expression .) - INPUT reduce using rule 56 (expression -> expression N_DIV expression .) - OUTPUT reduce using rule 56 (expression -> expression N_DIV expression .) - _OUTPUT reduce using rule 56 (expression -> expression N_DIV expression .) - IF reduce using rule 56 (expression -> expression N_DIV expression .) - CASE reduce using rule 56 (expression -> expression N_DIV expression .) - FOR reduce using rule 56 (expression -> expression N_DIV expression .) - REPEAT reduce using rule 56 (expression -> expression N_DIV expression .) - WHILE reduce using rule 56 (expression -> expression N_DIV expression .) - PROCEDURE reduce using rule 56 (expression -> expression N_DIV expression .) - CALL reduce using rule 56 (expression -> expression N_DIV expression .) - FUNCTION reduce using rule 56 (expression -> expression N_DIV expression .) - RETURN reduce using rule 56 (expression -> expression N_DIV expression .) - OPENFILE reduce using rule 56 (expression -> expression N_DIV expression .) - READFILE reduce using rule 56 (expression -> expression N_DIV expression .) - WRITEFILE reduce using rule 56 (expression -> expression N_DIV expression .) - CLOSEFILE reduce using rule 56 (expression -> expression N_DIV expression .) - SEEK reduce using rule 56 (expression -> expression N_DIV expression .) - TYPE reduce using rule 56 (expression -> expression N_DIV expression .) - PASS reduce using rule 56 (expression -> expression N_DIV expression .) - IMPORT reduce using rule 56 (expression -> expression N_DIV expression .) - CLASS reduce using rule 56 (expression -> expression N_DIV expression .) - LEFT_SQUARE reduce using rule 56 (expression -> expression N_DIV expression .) - ID reduce using rule 56 (expression -> expression N_DIV expression .) - NOT reduce using rule 56 (expression -> expression N_DIV expression .) - LEFT_PAREN reduce using rule 56 (expression -> expression N_DIV expression .) - DATE reduce using rule 56 (expression -> expression N_DIV expression .) - BOOLEAN reduce using rule 56 (expression -> expression N_DIV expression .) - CHAR reduce using rule 56 (expression -> expression N_DIV expression .) - STRING reduce using rule 56 (expression -> expression N_DIV expression .) - REAL reduce using rule 56 (expression -> expression N_DIV expression .) - INTEGER reduce using rule 56 (expression -> expression N_DIV expression .) - NEW reduce using rule 56 (expression -> expression N_DIV expression .) - $end reduce using rule 56 (expression -> expression N_DIV expression .) - RIGHT_SQUARE reduce using rule 56 (expression -> expression N_DIV expression .) - COMMA reduce using rule 56 (expression -> expression N_DIV expression .) - UNTIL reduce using rule 56 (expression -> expression N_DIV expression .) - ENDWHILE reduce using rule 56 (expression -> expression N_DIV expression .) - ENDTYPE reduce using rule 56 (expression -> expression N_DIV expression .) - ENDCLASS reduce using rule 56 (expression -> expression N_DIV expression .) - ELSE reduce using rule 56 (expression -> expression N_DIV expression .) - ENDIF reduce using rule 56 (expression -> expression N_DIV expression .) - ENDPROCEDURE reduce using rule 56 (expression -> expression N_DIV expression .) - SEMICOLON reduce using rule 56 (expression -> expression N_DIV expression .) - NEXT reduce using rule 56 (expression -> expression N_DIV expression .) - ENDFUNCTION reduce using rule 56 (expression -> expression N_DIV expression .) - THEN reduce using rule 56 (expression -> expression N_DIV expression .) - DO reduce using rule 56 (expression -> expression N_DIV expression .) - RIGHT_PAREN reduce using rule 56 (expression -> expression N_DIV expression .) - OTHERWISE reduce using rule 56 (expression -> expression N_DIV expression .) - TO reduce using rule 56 (expression -> expression N_DIV expression .) - COLON reduce using rule 56 (expression -> expression N_DIV expression .) - STEP reduce using rule 56 (expression -> expression N_DIV expression .) + (57) expression -> expression N_DIV expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 57 (expression -> expression N_DIV expression .) + OR reduce using rule 57 (expression -> expression N_DIV expression .) + AND reduce using rule 57 (expression -> expression N_DIV expression .) + EQUAL reduce using rule 57 (expression -> expression N_DIV expression .) + NOT_EQUAL reduce using rule 57 (expression -> expression N_DIV expression .) + LESS reduce using rule 57 (expression -> expression N_DIV expression .) + GREATER reduce using rule 57 (expression -> expression N_DIV expression .) + LESS_EQUAL reduce using rule 57 (expression -> expression N_DIV expression .) + GREATER_EQUAL reduce using rule 57 (expression -> expression N_DIV expression .) + MOD reduce using rule 57 (expression -> expression N_DIV expression .) + DIV reduce using rule 57 (expression -> expression N_DIV expression .) + MUL reduce using rule 57 (expression -> expression N_DIV expression .) + N_DIV reduce using rule 57 (expression -> expression N_DIV expression .) + PLUS reduce using rule 57 (expression -> expression N_DIV expression .) + MINUS reduce using rule 57 (expression -> expression N_DIV expression .) + CONNECT reduce using rule 57 (expression -> expression N_DIV expression .) + DOT reduce using rule 57 (expression -> expression N_DIV expression .) + POINTER reduce using rule 57 (expression -> expression N_DIV expression .) + DELETE reduce using rule 57 (expression -> expression N_DIV expression .) + DECLARE reduce using rule 57 (expression -> expression N_DIV expression .) + PUBLIC reduce using rule 57 (expression -> expression N_DIV expression .) + PRIVATE reduce using rule 57 (expression -> expression N_DIV expression .) + CONSTANT reduce using rule 57 (expression -> expression N_DIV expression .) + INPUT reduce using rule 57 (expression -> expression N_DIV expression .) + OUTPUT reduce using rule 57 (expression -> expression N_DIV expression .) + _OUTPUT reduce using rule 57 (expression -> expression N_DIV expression .) + IF reduce using rule 57 (expression -> expression N_DIV expression .) + CASE reduce using rule 57 (expression -> expression N_DIV expression .) + FOR reduce using rule 57 (expression -> expression N_DIV expression .) + REPEAT reduce using rule 57 (expression -> expression N_DIV expression .) + WHILE reduce using rule 57 (expression -> expression N_DIV expression .) + PROCEDURE reduce using rule 57 (expression -> expression N_DIV expression .) + CALL reduce using rule 57 (expression -> expression N_DIV expression .) + FUNCTION reduce using rule 57 (expression -> expression N_DIV expression .) + RETURN reduce using rule 57 (expression -> expression N_DIV expression .) + OPENFILE reduce using rule 57 (expression -> expression N_DIV expression .) + READFILE reduce using rule 57 (expression -> expression N_DIV expression .) + WRITEFILE reduce using rule 57 (expression -> expression N_DIV expression .) + CLOSEFILE reduce using rule 57 (expression -> expression N_DIV expression .) + SEEK reduce using rule 57 (expression -> expression N_DIV expression .) + TYPE reduce using rule 57 (expression -> expression N_DIV expression .) + PASS reduce using rule 57 (expression -> expression N_DIV expression .) + IMPORT reduce using rule 57 (expression -> expression N_DIV expression .) + CLASS reduce using rule 57 (expression -> expression N_DIV expression .) + LEFT_SQUARE reduce using rule 57 (expression -> expression N_DIV expression .) + ID reduce using rule 57 (expression -> expression N_DIV expression .) + NOT reduce using rule 57 (expression -> expression N_DIV expression .) + LEFT_PAREN reduce using rule 57 (expression -> expression N_DIV expression .) + DATE reduce using rule 57 (expression -> expression N_DIV expression .) + BOOLEAN reduce using rule 57 (expression -> expression N_DIV expression .) + CHAR reduce using rule 57 (expression -> expression N_DIV expression .) + STRING reduce using rule 57 (expression -> expression N_DIV expression .) + REAL reduce using rule 57 (expression -> expression N_DIV expression .) + INTEGER reduce using rule 57 (expression -> expression N_DIV expression .) + NEW reduce using rule 57 (expression -> expression N_DIV expression .) + $end reduce using rule 57 (expression -> expression N_DIV expression .) + RIGHT_SQUARE reduce using rule 57 (expression -> expression N_DIV expression .) + COMMA reduce using rule 57 (expression -> expression N_DIV expression .) + UNTIL reduce using rule 57 (expression -> expression N_DIV expression .) + ENDWHILE reduce using rule 57 (expression -> expression N_DIV expression .) + ENDTYPE reduce using rule 57 (expression -> expression N_DIV expression .) + ENDCLASS reduce using rule 57 (expression -> expression N_DIV expression .) + ELSE reduce using rule 57 (expression -> expression N_DIV expression .) + ENDIF reduce using rule 57 (expression -> expression N_DIV expression .) + ENDPROCEDURE reduce using rule 57 (expression -> expression N_DIV expression .) + SEMICOLON reduce using rule 57 (expression -> expression N_DIV expression .) + NEXT reduce using rule 57 (expression -> expression N_DIV expression .) + ENDFUNCTION reduce using rule 57 (expression -> expression N_DIV expression .) + THEN reduce using rule 57 (expression -> expression N_DIV expression .) + DO reduce using rule 57 (expression -> expression N_DIV expression .) + RIGHT_PAREN reduce using rule 57 (expression -> expression N_DIV expression .) + OTHERWISE reduce using rule 57 (expression -> expression N_DIV expression .) + TO reduce using rule 57 (expression -> expression N_DIV expression .) + COLON reduce using rule 57 (expression -> expression N_DIV expression .) + STEP reduce using rule 57 (expression -> expression N_DIV expression .) ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] @@ -8560,107 +8632,107 @@ state 136 ! POINTER [ shift and go to state 75 ] -state 137 +state 138 - (59) expression -> expression PLUS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 59 (expression -> expression PLUS expression .) - OR reduce using rule 59 (expression -> expression PLUS expression .) - AND reduce using rule 59 (expression -> expression PLUS expression .) - EQUAL reduce using rule 59 (expression -> expression PLUS expression .) - NOT_EQUAL reduce using rule 59 (expression -> expression PLUS expression .) - LESS reduce using rule 59 (expression -> expression PLUS expression .) - GREATER reduce using rule 59 (expression -> expression PLUS expression .) - LESS_EQUAL reduce using rule 59 (expression -> expression PLUS expression .) - GREATER_EQUAL reduce using rule 59 (expression -> expression PLUS expression .) - PLUS reduce using rule 59 (expression -> expression PLUS expression .) - MINUS reduce using rule 59 (expression -> expression PLUS expression .) - CONNECT reduce using rule 59 (expression -> expression PLUS expression .) - DOT reduce using rule 59 (expression -> expression PLUS expression .) - POINTER reduce using rule 59 (expression -> expression PLUS expression .) - DELETE reduce using rule 59 (expression -> expression PLUS expression .) - DECLARE reduce using rule 59 (expression -> expression PLUS expression .) - PUBLIC reduce using rule 59 (expression -> expression PLUS expression .) - PRIVATE reduce using rule 59 (expression -> expression PLUS expression .) - CONSTANT reduce using rule 59 (expression -> expression PLUS expression .) - INPUT reduce using rule 59 (expression -> expression PLUS expression .) - OUTPUT reduce using rule 59 (expression -> expression PLUS expression .) - _OUTPUT reduce using rule 59 (expression -> expression PLUS expression .) - IF reduce using rule 59 (expression -> expression PLUS expression .) - CASE reduce using rule 59 (expression -> expression PLUS expression .) - FOR reduce using rule 59 (expression -> expression PLUS expression .) - REPEAT reduce using rule 59 (expression -> expression PLUS expression .) - WHILE reduce using rule 59 (expression -> expression PLUS expression .) - PROCEDURE reduce using rule 59 (expression -> expression PLUS expression .) - CALL reduce using rule 59 (expression -> expression PLUS expression .) - FUNCTION reduce using rule 59 (expression -> expression PLUS expression .) - RETURN reduce using rule 59 (expression -> expression PLUS expression .) - OPENFILE reduce using rule 59 (expression -> expression PLUS expression .) - READFILE reduce using rule 59 (expression -> expression PLUS expression .) - WRITEFILE reduce using rule 59 (expression -> expression PLUS expression .) - CLOSEFILE reduce using rule 59 (expression -> expression PLUS expression .) - SEEK reduce using rule 59 (expression -> expression PLUS expression .) - TYPE reduce using rule 59 (expression -> expression PLUS expression .) - PASS reduce using rule 59 (expression -> expression PLUS expression .) - IMPORT reduce using rule 59 (expression -> expression PLUS expression .) - CLASS reduce using rule 59 (expression -> expression PLUS expression .) - LEFT_SQUARE reduce using rule 59 (expression -> expression PLUS expression .) - ID reduce using rule 59 (expression -> expression PLUS expression .) - NOT reduce using rule 59 (expression -> expression PLUS expression .) - LEFT_PAREN reduce using rule 59 (expression -> expression PLUS expression .) - DATE reduce using rule 59 (expression -> expression PLUS expression .) - BOOLEAN reduce using rule 59 (expression -> expression PLUS expression .) - CHAR reduce using rule 59 (expression -> expression PLUS expression .) - STRING reduce using rule 59 (expression -> expression PLUS expression .) - REAL reduce using rule 59 (expression -> expression PLUS expression .) - INTEGER reduce using rule 59 (expression -> expression PLUS expression .) - NEW reduce using rule 59 (expression -> expression PLUS expression .) - $end reduce using rule 59 (expression -> expression PLUS expression .) - RIGHT_SQUARE reduce using rule 59 (expression -> expression PLUS expression .) - COMMA reduce using rule 59 (expression -> expression PLUS expression .) - UNTIL reduce using rule 59 (expression -> expression PLUS expression .) - ENDWHILE reduce using rule 59 (expression -> expression PLUS expression .) - ENDTYPE reduce using rule 59 (expression -> expression PLUS expression .) - ENDCLASS reduce using rule 59 (expression -> expression PLUS expression .) - ELSE reduce using rule 59 (expression -> expression PLUS expression .) - ENDIF reduce using rule 59 (expression -> expression PLUS expression .) - ENDPROCEDURE reduce using rule 59 (expression -> expression PLUS expression .) - SEMICOLON reduce using rule 59 (expression -> expression PLUS expression .) - NEXT reduce using rule 59 (expression -> expression PLUS expression .) - ENDFUNCTION reduce using rule 59 (expression -> expression PLUS expression .) - THEN reduce using rule 59 (expression -> expression PLUS expression .) - RIGHT_PAREN reduce using rule 59 (expression -> expression PLUS expression .) - DO reduce using rule 59 (expression -> expression PLUS expression .) - OTHERWISE reduce using rule 59 (expression -> expression PLUS expression .) - TO reduce using rule 59 (expression -> expression PLUS expression .) - COLON reduce using rule 59 (expression -> expression PLUS expression .) - STEP reduce using rule 59 (expression -> expression PLUS expression .) + (60) expression -> expression PLUS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 60 (expression -> expression PLUS expression .) + OR reduce using rule 60 (expression -> expression PLUS expression .) + AND reduce using rule 60 (expression -> expression PLUS expression .) + EQUAL reduce using rule 60 (expression -> expression PLUS expression .) + NOT_EQUAL reduce using rule 60 (expression -> expression PLUS expression .) + LESS reduce using rule 60 (expression -> expression PLUS expression .) + GREATER reduce using rule 60 (expression -> expression PLUS expression .) + LESS_EQUAL reduce using rule 60 (expression -> expression PLUS expression .) + GREATER_EQUAL reduce using rule 60 (expression -> expression PLUS expression .) + PLUS reduce using rule 60 (expression -> expression PLUS expression .) + MINUS reduce using rule 60 (expression -> expression PLUS expression .) + CONNECT reduce using rule 60 (expression -> expression PLUS expression .) + DOT reduce using rule 60 (expression -> expression PLUS expression .) + POINTER reduce using rule 60 (expression -> expression PLUS expression .) + DELETE reduce using rule 60 (expression -> expression PLUS expression .) + DECLARE reduce using rule 60 (expression -> expression PLUS expression .) + PUBLIC reduce using rule 60 (expression -> expression PLUS expression .) + PRIVATE reduce using rule 60 (expression -> expression PLUS expression .) + CONSTANT reduce using rule 60 (expression -> expression PLUS expression .) + INPUT reduce using rule 60 (expression -> expression PLUS expression .) + OUTPUT reduce using rule 60 (expression -> expression PLUS expression .) + _OUTPUT reduce using rule 60 (expression -> expression PLUS expression .) + IF reduce using rule 60 (expression -> expression PLUS expression .) + CASE reduce using rule 60 (expression -> expression PLUS expression .) + FOR reduce using rule 60 (expression -> expression PLUS expression .) + REPEAT reduce using rule 60 (expression -> expression PLUS expression .) + WHILE reduce using rule 60 (expression -> expression PLUS expression .) + PROCEDURE reduce using rule 60 (expression -> expression PLUS expression .) + CALL reduce using rule 60 (expression -> expression PLUS expression .) + FUNCTION reduce using rule 60 (expression -> expression PLUS expression .) + RETURN reduce using rule 60 (expression -> expression PLUS expression .) + OPENFILE reduce using rule 60 (expression -> expression PLUS expression .) + READFILE reduce using rule 60 (expression -> expression PLUS expression .) + WRITEFILE reduce using rule 60 (expression -> expression PLUS expression .) + CLOSEFILE reduce using rule 60 (expression -> expression PLUS expression .) + SEEK reduce using rule 60 (expression -> expression PLUS expression .) + TYPE reduce using rule 60 (expression -> expression PLUS expression .) + PASS reduce using rule 60 (expression -> expression PLUS expression .) + IMPORT reduce using rule 60 (expression -> expression PLUS expression .) + CLASS reduce using rule 60 (expression -> expression PLUS expression .) + LEFT_SQUARE reduce using rule 60 (expression -> expression PLUS expression .) + ID reduce using rule 60 (expression -> expression PLUS expression .) + NOT reduce using rule 60 (expression -> expression PLUS expression .) + LEFT_PAREN reduce using rule 60 (expression -> expression PLUS expression .) + DATE reduce using rule 60 (expression -> expression PLUS expression .) + BOOLEAN reduce using rule 60 (expression -> expression PLUS expression .) + CHAR reduce using rule 60 (expression -> expression PLUS expression .) + STRING reduce using rule 60 (expression -> expression PLUS expression .) + REAL reduce using rule 60 (expression -> expression PLUS expression .) + INTEGER reduce using rule 60 (expression -> expression PLUS expression .) + NEW reduce using rule 60 (expression -> expression PLUS expression .) + $end reduce using rule 60 (expression -> expression PLUS expression .) + RIGHT_SQUARE reduce using rule 60 (expression -> expression PLUS expression .) + COMMA reduce using rule 60 (expression -> expression PLUS expression .) + UNTIL reduce using rule 60 (expression -> expression PLUS expression .) + ENDWHILE reduce using rule 60 (expression -> expression PLUS expression .) + ENDTYPE reduce using rule 60 (expression -> expression PLUS expression .) + ENDCLASS reduce using rule 60 (expression -> expression PLUS expression .) + ELSE reduce using rule 60 (expression -> expression PLUS expression .) + ENDIF reduce using rule 60 (expression -> expression PLUS expression .) + ENDPROCEDURE reduce using rule 60 (expression -> expression PLUS expression .) + SEMICOLON reduce using rule 60 (expression -> expression PLUS expression .) + NEXT reduce using rule 60 (expression -> expression PLUS expression .) + ENDFUNCTION reduce using rule 60 (expression -> expression PLUS expression .) + THEN reduce using rule 60 (expression -> expression PLUS expression .) + RIGHT_PAREN reduce using rule 60 (expression -> expression PLUS expression .) + DO reduce using rule 60 (expression -> expression PLUS expression .) + OTHERWISE reduce using rule 60 (expression -> expression PLUS expression .) + TO reduce using rule 60 (expression -> expression PLUS expression .) + COLON reduce using rule 60 (expression -> expression PLUS expression .) + STEP reduce using rule 60 (expression -> expression PLUS expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 N_DIV shift and go to state 70 - ! MOD [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! DIV [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! MUL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! N_DIV [ reduce using rule 59 (expression -> expression PLUS expression .) ] + ! MOD [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! DIV [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! MUL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! N_DIV [ reduce using rule 60 (expression -> expression PLUS expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -8676,107 +8748,107 @@ state 137 ! POINTER [ shift and go to state 75 ] -state 138 +state 139 - (60) expression -> expression MINUS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ASSIGN reduce using rule 60 (expression -> expression MINUS expression .) - OR reduce using rule 60 (expression -> expression MINUS expression .) - AND reduce using rule 60 (expression -> expression MINUS expression .) - EQUAL reduce using rule 60 (expression -> expression MINUS expression .) - NOT_EQUAL reduce using rule 60 (expression -> expression MINUS expression .) - LESS reduce using rule 60 (expression -> expression MINUS expression .) - GREATER reduce using rule 60 (expression -> expression MINUS expression .) - LESS_EQUAL reduce using rule 60 (expression -> expression MINUS expression .) - GREATER_EQUAL reduce using rule 60 (expression -> expression MINUS expression .) - PLUS reduce using rule 60 (expression -> expression MINUS expression .) - MINUS reduce using rule 60 (expression -> expression MINUS expression .) - CONNECT reduce using rule 60 (expression -> expression MINUS expression .) - DOT reduce using rule 60 (expression -> expression MINUS expression .) - POINTER reduce using rule 60 (expression -> expression MINUS expression .) - DELETE reduce using rule 60 (expression -> expression MINUS expression .) - DECLARE reduce using rule 60 (expression -> expression MINUS expression .) - PUBLIC reduce using rule 60 (expression -> expression MINUS expression .) - PRIVATE reduce using rule 60 (expression -> expression MINUS expression .) - CONSTANT reduce using rule 60 (expression -> expression MINUS expression .) - INPUT reduce using rule 60 (expression -> expression MINUS expression .) - OUTPUT reduce using rule 60 (expression -> expression MINUS expression .) - _OUTPUT reduce using rule 60 (expression -> expression MINUS expression .) - IF reduce using rule 60 (expression -> expression MINUS expression .) - CASE reduce using rule 60 (expression -> expression MINUS expression .) - FOR reduce using rule 60 (expression -> expression MINUS expression .) - REPEAT reduce using rule 60 (expression -> expression MINUS expression .) - WHILE reduce using rule 60 (expression -> expression MINUS expression .) - PROCEDURE reduce using rule 60 (expression -> expression MINUS expression .) - CALL reduce using rule 60 (expression -> expression MINUS expression .) - FUNCTION reduce using rule 60 (expression -> expression MINUS expression .) - RETURN reduce using rule 60 (expression -> expression MINUS expression .) - OPENFILE reduce using rule 60 (expression -> expression MINUS expression .) - READFILE reduce using rule 60 (expression -> expression MINUS expression .) - WRITEFILE reduce using rule 60 (expression -> expression MINUS expression .) - CLOSEFILE reduce using rule 60 (expression -> expression MINUS expression .) - SEEK reduce using rule 60 (expression -> expression MINUS expression .) - TYPE reduce using rule 60 (expression -> expression MINUS expression .) - PASS reduce using rule 60 (expression -> expression MINUS expression .) - IMPORT reduce using rule 60 (expression -> expression MINUS expression .) - CLASS reduce using rule 60 (expression -> expression MINUS expression .) - LEFT_SQUARE reduce using rule 60 (expression -> expression MINUS expression .) - ID reduce using rule 60 (expression -> expression MINUS expression .) - NOT reduce using rule 60 (expression -> expression MINUS expression .) - LEFT_PAREN reduce using rule 60 (expression -> expression MINUS expression .) - DATE reduce using rule 60 (expression -> expression MINUS expression .) - BOOLEAN reduce using rule 60 (expression -> expression MINUS expression .) - CHAR reduce using rule 60 (expression -> expression MINUS expression .) - STRING reduce using rule 60 (expression -> expression MINUS expression .) - REAL reduce using rule 60 (expression -> expression MINUS expression .) - INTEGER reduce using rule 60 (expression -> expression MINUS expression .) - NEW reduce using rule 60 (expression -> expression MINUS expression .) - $end reduce using rule 60 (expression -> expression MINUS expression .) - RIGHT_SQUARE reduce using rule 60 (expression -> expression MINUS expression .) - COMMA reduce using rule 60 (expression -> expression MINUS expression .) - UNTIL reduce using rule 60 (expression -> expression MINUS expression .) - ENDWHILE reduce using rule 60 (expression -> expression MINUS expression .) - ENDTYPE reduce using rule 60 (expression -> expression MINUS expression .) - ENDCLASS reduce using rule 60 (expression -> expression MINUS expression .) - ELSE reduce using rule 60 (expression -> expression MINUS expression .) - ENDIF reduce using rule 60 (expression -> expression MINUS expression .) - ENDPROCEDURE reduce using rule 60 (expression -> expression MINUS expression .) - SEMICOLON reduce using rule 60 (expression -> expression MINUS expression .) - NEXT reduce using rule 60 (expression -> expression MINUS expression .) - ENDFUNCTION reduce using rule 60 (expression -> expression MINUS expression .) - THEN reduce using rule 60 (expression -> expression MINUS expression .) - RIGHT_PAREN reduce using rule 60 (expression -> expression MINUS expression .) - DO reduce using rule 60 (expression -> expression MINUS expression .) - OTHERWISE reduce using rule 60 (expression -> expression MINUS expression .) - TO reduce using rule 60 (expression -> expression MINUS expression .) - COLON reduce using rule 60 (expression -> expression MINUS expression .) - STEP reduce using rule 60 (expression -> expression MINUS expression .) + (61) expression -> expression MINUS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ASSIGN reduce using rule 61 (expression -> expression MINUS expression .) + OR reduce using rule 61 (expression -> expression MINUS expression .) + AND reduce using rule 61 (expression -> expression MINUS expression .) + EQUAL reduce using rule 61 (expression -> expression MINUS expression .) + NOT_EQUAL reduce using rule 61 (expression -> expression MINUS expression .) + LESS reduce using rule 61 (expression -> expression MINUS expression .) + GREATER reduce using rule 61 (expression -> expression MINUS expression .) + LESS_EQUAL reduce using rule 61 (expression -> expression MINUS expression .) + GREATER_EQUAL reduce using rule 61 (expression -> expression MINUS expression .) + PLUS reduce using rule 61 (expression -> expression MINUS expression .) + MINUS reduce using rule 61 (expression -> expression MINUS expression .) + CONNECT reduce using rule 61 (expression -> expression MINUS expression .) + DOT reduce using rule 61 (expression -> expression MINUS expression .) + POINTER reduce using rule 61 (expression -> expression MINUS expression .) + DELETE reduce using rule 61 (expression -> expression MINUS expression .) + DECLARE reduce using rule 61 (expression -> expression MINUS expression .) + PUBLIC reduce using rule 61 (expression -> expression MINUS expression .) + PRIVATE reduce using rule 61 (expression -> expression MINUS expression .) + CONSTANT reduce using rule 61 (expression -> expression MINUS expression .) + INPUT reduce using rule 61 (expression -> expression MINUS expression .) + OUTPUT reduce using rule 61 (expression -> expression MINUS expression .) + _OUTPUT reduce using rule 61 (expression -> expression MINUS expression .) + IF reduce using rule 61 (expression -> expression MINUS expression .) + CASE reduce using rule 61 (expression -> expression MINUS expression .) + FOR reduce using rule 61 (expression -> expression MINUS expression .) + REPEAT reduce using rule 61 (expression -> expression MINUS expression .) + WHILE reduce using rule 61 (expression -> expression MINUS expression .) + PROCEDURE reduce using rule 61 (expression -> expression MINUS expression .) + CALL reduce using rule 61 (expression -> expression MINUS expression .) + FUNCTION reduce using rule 61 (expression -> expression MINUS expression .) + RETURN reduce using rule 61 (expression -> expression MINUS expression .) + OPENFILE reduce using rule 61 (expression -> expression MINUS expression .) + READFILE reduce using rule 61 (expression -> expression MINUS expression .) + WRITEFILE reduce using rule 61 (expression -> expression MINUS expression .) + CLOSEFILE reduce using rule 61 (expression -> expression MINUS expression .) + SEEK reduce using rule 61 (expression -> expression MINUS expression .) + TYPE reduce using rule 61 (expression -> expression MINUS expression .) + PASS reduce using rule 61 (expression -> expression MINUS expression .) + IMPORT reduce using rule 61 (expression -> expression MINUS expression .) + CLASS reduce using rule 61 (expression -> expression MINUS expression .) + LEFT_SQUARE reduce using rule 61 (expression -> expression MINUS expression .) + ID reduce using rule 61 (expression -> expression MINUS expression .) + NOT reduce using rule 61 (expression -> expression MINUS expression .) + LEFT_PAREN reduce using rule 61 (expression -> expression MINUS expression .) + DATE reduce using rule 61 (expression -> expression MINUS expression .) + BOOLEAN reduce using rule 61 (expression -> expression MINUS expression .) + CHAR reduce using rule 61 (expression -> expression MINUS expression .) + STRING reduce using rule 61 (expression -> expression MINUS expression .) + REAL reduce using rule 61 (expression -> expression MINUS expression .) + INTEGER reduce using rule 61 (expression -> expression MINUS expression .) + NEW reduce using rule 61 (expression -> expression MINUS expression .) + $end reduce using rule 61 (expression -> expression MINUS expression .) + RIGHT_SQUARE reduce using rule 61 (expression -> expression MINUS expression .) + COMMA reduce using rule 61 (expression -> expression MINUS expression .) + UNTIL reduce using rule 61 (expression -> expression MINUS expression .) + ENDWHILE reduce using rule 61 (expression -> expression MINUS expression .) + ENDTYPE reduce using rule 61 (expression -> expression MINUS expression .) + ENDCLASS reduce using rule 61 (expression -> expression MINUS expression .) + ELSE reduce using rule 61 (expression -> expression MINUS expression .) + ENDIF reduce using rule 61 (expression -> expression MINUS expression .) + ENDPROCEDURE reduce using rule 61 (expression -> expression MINUS expression .) + SEMICOLON reduce using rule 61 (expression -> expression MINUS expression .) + NEXT reduce using rule 61 (expression -> expression MINUS expression .) + ENDFUNCTION reduce using rule 61 (expression -> expression MINUS expression .) + THEN reduce using rule 61 (expression -> expression MINUS expression .) + RIGHT_PAREN reduce using rule 61 (expression -> expression MINUS expression .) + DO reduce using rule 61 (expression -> expression MINUS expression .) + OTHERWISE reduce using rule 61 (expression -> expression MINUS expression .) + TO reduce using rule 61 (expression -> expression MINUS expression .) + COLON reduce using rule 61 (expression -> expression MINUS expression .) + STEP reduce using rule 61 (expression -> expression MINUS expression .) MOD shift and go to state 67 DIV shift and go to state 68 MUL shift and go to state 69 N_DIV shift and go to state 70 - ! MOD [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! DIV [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! MUL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! N_DIV [ reduce using rule 60 (expression -> expression MINUS expression .) ] + ! MOD [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! DIV [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! MUL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! N_DIV [ reduce using rule 61 (expression -> expression MINUS expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -8792,26 +8864,26 @@ state 138 ! POINTER [ shift and go to state 75 ] -state 139 +state 140 - (61) expression -> expression CONNECT expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (62) expression -> expression CONNECT expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for OR resolved as shift ! shift/reduce conflict for AND resolved as shift @@ -8830,64 +8902,64 @@ state 139 ! shift/reduce conflict for CONNECT resolved as shift ! shift/reduce conflict for DOT resolved as shift ! shift/reduce conflict for POINTER resolved as shift - ASSIGN reduce using rule 61 (expression -> expression CONNECT expression .) - DELETE reduce using rule 61 (expression -> expression CONNECT expression .) - DECLARE reduce using rule 61 (expression -> expression CONNECT expression .) - PUBLIC reduce using rule 61 (expression -> expression CONNECT expression .) - PRIVATE reduce using rule 61 (expression -> expression CONNECT expression .) - CONSTANT reduce using rule 61 (expression -> expression CONNECT expression .) - INPUT reduce using rule 61 (expression -> expression CONNECT expression .) - OUTPUT reduce using rule 61 (expression -> expression CONNECT expression .) - _OUTPUT reduce using rule 61 (expression -> expression CONNECT expression .) - IF reduce using rule 61 (expression -> expression CONNECT expression .) - CASE reduce using rule 61 (expression -> expression CONNECT expression .) - FOR reduce using rule 61 (expression -> expression CONNECT expression .) - REPEAT reduce using rule 61 (expression -> expression CONNECT expression .) - WHILE reduce using rule 61 (expression -> expression CONNECT expression .) - PROCEDURE reduce using rule 61 (expression -> expression CONNECT expression .) - CALL reduce using rule 61 (expression -> expression CONNECT expression .) - FUNCTION reduce using rule 61 (expression -> expression CONNECT expression .) - RETURN reduce using rule 61 (expression -> expression CONNECT expression .) - OPENFILE reduce using rule 61 (expression -> expression CONNECT expression .) - READFILE reduce using rule 61 (expression -> expression CONNECT expression .) - WRITEFILE reduce using rule 61 (expression -> expression CONNECT expression .) - CLOSEFILE reduce using rule 61 (expression -> expression CONNECT expression .) - SEEK reduce using rule 61 (expression -> expression CONNECT expression .) - TYPE reduce using rule 61 (expression -> expression CONNECT expression .) - PASS reduce using rule 61 (expression -> expression CONNECT expression .) - IMPORT reduce using rule 61 (expression -> expression CONNECT expression .) - CLASS reduce using rule 61 (expression -> expression CONNECT expression .) - LEFT_SQUARE reduce using rule 61 (expression -> expression CONNECT expression .) - ID reduce using rule 61 (expression -> expression CONNECT expression .) - NOT reduce using rule 61 (expression -> expression CONNECT expression .) - LEFT_PAREN reduce using rule 61 (expression -> expression CONNECT expression .) - DATE reduce using rule 61 (expression -> expression CONNECT expression .) - BOOLEAN reduce using rule 61 (expression -> expression CONNECT expression .) - CHAR reduce using rule 61 (expression -> expression CONNECT expression .) - STRING reduce using rule 61 (expression -> expression CONNECT expression .) - REAL reduce using rule 61 (expression -> expression CONNECT expression .) - INTEGER reduce using rule 61 (expression -> expression CONNECT expression .) - NEW reduce using rule 61 (expression -> expression CONNECT expression .) - $end reduce using rule 61 (expression -> expression CONNECT expression .) - RIGHT_SQUARE reduce using rule 61 (expression -> expression CONNECT expression .) - COMMA reduce using rule 61 (expression -> expression CONNECT expression .) - UNTIL reduce using rule 61 (expression -> expression CONNECT expression .) - ENDWHILE reduce using rule 61 (expression -> expression CONNECT expression .) - ENDTYPE reduce using rule 61 (expression -> expression CONNECT expression .) - ENDCLASS reduce using rule 61 (expression -> expression CONNECT expression .) - ELSE reduce using rule 61 (expression -> expression CONNECT expression .) - ENDIF reduce using rule 61 (expression -> expression CONNECT expression .) - ENDPROCEDURE reduce using rule 61 (expression -> expression CONNECT expression .) - SEMICOLON reduce using rule 61 (expression -> expression CONNECT expression .) - NEXT reduce using rule 61 (expression -> expression CONNECT expression .) - ENDFUNCTION reduce using rule 61 (expression -> expression CONNECT expression .) - THEN reduce using rule 61 (expression -> expression CONNECT expression .) - DO reduce using rule 61 (expression -> expression CONNECT expression .) - RIGHT_PAREN reduce using rule 61 (expression -> expression CONNECT expression .) - OTHERWISE reduce using rule 61 (expression -> expression CONNECT expression .) - TO reduce using rule 61 (expression -> expression CONNECT expression .) - COLON reduce using rule 61 (expression -> expression CONNECT expression .) - STEP reduce using rule 61 (expression -> expression CONNECT expression .) + ASSIGN reduce using rule 62 (expression -> expression CONNECT expression .) + DELETE reduce using rule 62 (expression -> expression CONNECT expression .) + DECLARE reduce using rule 62 (expression -> expression CONNECT expression .) + PUBLIC reduce using rule 62 (expression -> expression CONNECT expression .) + PRIVATE reduce using rule 62 (expression -> expression CONNECT expression .) + CONSTANT reduce using rule 62 (expression -> expression CONNECT expression .) + INPUT reduce using rule 62 (expression -> expression CONNECT expression .) + OUTPUT reduce using rule 62 (expression -> expression CONNECT expression .) + _OUTPUT reduce using rule 62 (expression -> expression CONNECT expression .) + IF reduce using rule 62 (expression -> expression CONNECT expression .) + CASE reduce using rule 62 (expression -> expression CONNECT expression .) + FOR reduce using rule 62 (expression -> expression CONNECT expression .) + REPEAT reduce using rule 62 (expression -> expression CONNECT expression .) + WHILE reduce using rule 62 (expression -> expression CONNECT expression .) + PROCEDURE reduce using rule 62 (expression -> expression CONNECT expression .) + CALL reduce using rule 62 (expression -> expression CONNECT expression .) + FUNCTION reduce using rule 62 (expression -> expression CONNECT expression .) + RETURN reduce using rule 62 (expression -> expression CONNECT expression .) + OPENFILE reduce using rule 62 (expression -> expression CONNECT expression .) + READFILE reduce using rule 62 (expression -> expression CONNECT expression .) + WRITEFILE reduce using rule 62 (expression -> expression CONNECT expression .) + CLOSEFILE reduce using rule 62 (expression -> expression CONNECT expression .) + SEEK reduce using rule 62 (expression -> expression CONNECT expression .) + TYPE reduce using rule 62 (expression -> expression CONNECT expression .) + PASS reduce using rule 62 (expression -> expression CONNECT expression .) + IMPORT reduce using rule 62 (expression -> expression CONNECT expression .) + CLASS reduce using rule 62 (expression -> expression CONNECT expression .) + LEFT_SQUARE reduce using rule 62 (expression -> expression CONNECT expression .) + ID reduce using rule 62 (expression -> expression CONNECT expression .) + NOT reduce using rule 62 (expression -> expression CONNECT expression .) + LEFT_PAREN reduce using rule 62 (expression -> expression CONNECT expression .) + DATE reduce using rule 62 (expression -> expression CONNECT expression .) + BOOLEAN reduce using rule 62 (expression -> expression CONNECT expression .) + CHAR reduce using rule 62 (expression -> expression CONNECT expression .) + STRING reduce using rule 62 (expression -> expression CONNECT expression .) + REAL reduce using rule 62 (expression -> expression CONNECT expression .) + INTEGER reduce using rule 62 (expression -> expression CONNECT expression .) + NEW reduce using rule 62 (expression -> expression CONNECT expression .) + $end reduce using rule 62 (expression -> expression CONNECT expression .) + RIGHT_SQUARE reduce using rule 62 (expression -> expression CONNECT expression .) + COMMA reduce using rule 62 (expression -> expression CONNECT expression .) + UNTIL reduce using rule 62 (expression -> expression CONNECT expression .) + ENDWHILE reduce using rule 62 (expression -> expression CONNECT expression .) + ENDTYPE reduce using rule 62 (expression -> expression CONNECT expression .) + ENDCLASS reduce using rule 62 (expression -> expression CONNECT expression .) + ELSE reduce using rule 62 (expression -> expression CONNECT expression .) + ENDIF reduce using rule 62 (expression -> expression CONNECT expression .) + ENDPROCEDURE reduce using rule 62 (expression -> expression CONNECT expression .) + SEMICOLON reduce using rule 62 (expression -> expression CONNECT expression .) + NEXT reduce using rule 62 (expression -> expression CONNECT expression .) + ENDFUNCTION reduce using rule 62 (expression -> expression CONNECT expression .) + THEN reduce using rule 62 (expression -> expression CONNECT expression .) + DO reduce using rule 62 (expression -> expression CONNECT expression .) + RIGHT_PAREN reduce using rule 62 (expression -> expression CONNECT expression .) + OTHERWISE reduce using rule 62 (expression -> expression CONNECT expression .) + TO reduce using rule 62 (expression -> expression CONNECT expression .) + COLON reduce using rule 62 (expression -> expression CONNECT expression .) + STEP reduce using rule 62 (expression -> expression CONNECT expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -8906,45 +8978,45 @@ state 139 DOT shift and go to state 74 POINTER shift and go to state 75 - ! OR [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! AND [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! EQUAL [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! NOT_EQUAL [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! LESS [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! GREATER [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! LESS_EQUAL [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! GREATER_EQUAL [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! MOD [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! DIV [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! MUL [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! N_DIV [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! PLUS [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! MINUS [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! CONNECT [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! DOT [ reduce using rule 61 (expression -> expression CONNECT expression .) ] - ! POINTER [ reduce using rule 61 (expression -> expression CONNECT expression .) ] + ! OR [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! AND [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! EQUAL [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! NOT_EQUAL [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! LESS [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! GREATER [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! LESS_EQUAL [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! GREATER_EQUAL [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! MOD [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! DIV [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! MUL [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! N_DIV [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! PLUS [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! MINUS [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! CONNECT [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! DOT [ reduce using rule 62 (expression -> expression CONNECT expression .) ] + ! POINTER [ reduce using rule 62 (expression -> expression CONNECT expression .) ] -state 140 +state 141 - (129) expression -> expression DOT expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (130) expression -> expression DOT expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for OR resolved as shift ! shift/reduce conflict for AND resolved as shift @@ -8963,64 +9035,64 @@ state 140 ! shift/reduce conflict for CONNECT resolved as shift ! shift/reduce conflict for DOT resolved as shift ! shift/reduce conflict for POINTER resolved as shift - ASSIGN reduce using rule 129 (expression -> expression DOT expression .) - DELETE reduce using rule 129 (expression -> expression DOT expression .) - DECLARE reduce using rule 129 (expression -> expression DOT expression .) - PUBLIC reduce using rule 129 (expression -> expression DOT expression .) - PRIVATE reduce using rule 129 (expression -> expression DOT expression .) - CONSTANT reduce using rule 129 (expression -> expression DOT expression .) - INPUT reduce using rule 129 (expression -> expression DOT expression .) - OUTPUT reduce using rule 129 (expression -> expression DOT expression .) - _OUTPUT reduce using rule 129 (expression -> expression DOT expression .) - IF reduce using rule 129 (expression -> expression DOT expression .) - CASE reduce using rule 129 (expression -> expression DOT expression .) - FOR reduce using rule 129 (expression -> expression DOT expression .) - REPEAT reduce using rule 129 (expression -> expression DOT expression .) - WHILE reduce using rule 129 (expression -> expression DOT expression .) - PROCEDURE reduce using rule 129 (expression -> expression DOT expression .) - CALL reduce using rule 129 (expression -> expression DOT expression .) - FUNCTION reduce using rule 129 (expression -> expression DOT expression .) - RETURN reduce using rule 129 (expression -> expression DOT expression .) - OPENFILE reduce using rule 129 (expression -> expression DOT expression .) - READFILE reduce using rule 129 (expression -> expression DOT expression .) - WRITEFILE reduce using rule 129 (expression -> expression DOT expression .) - CLOSEFILE reduce using rule 129 (expression -> expression DOT expression .) - SEEK reduce using rule 129 (expression -> expression DOT expression .) - TYPE reduce using rule 129 (expression -> expression DOT expression .) - PASS reduce using rule 129 (expression -> expression DOT expression .) - IMPORT reduce using rule 129 (expression -> expression DOT expression .) - CLASS reduce using rule 129 (expression -> expression DOT expression .) - LEFT_SQUARE reduce using rule 129 (expression -> expression DOT expression .) - ID reduce using rule 129 (expression -> expression DOT expression .) - NOT reduce using rule 129 (expression -> expression DOT expression .) - LEFT_PAREN reduce using rule 129 (expression -> expression DOT expression .) - DATE reduce using rule 129 (expression -> expression DOT expression .) - BOOLEAN reduce using rule 129 (expression -> expression DOT expression .) - CHAR reduce using rule 129 (expression -> expression DOT expression .) - STRING reduce using rule 129 (expression -> expression DOT expression .) - REAL reduce using rule 129 (expression -> expression DOT expression .) - INTEGER reduce using rule 129 (expression -> expression DOT expression .) - NEW reduce using rule 129 (expression -> expression DOT expression .) - $end reduce using rule 129 (expression -> expression DOT expression .) - RIGHT_SQUARE reduce using rule 129 (expression -> expression DOT expression .) - COMMA reduce using rule 129 (expression -> expression DOT expression .) - UNTIL reduce using rule 129 (expression -> expression DOT expression .) - ENDWHILE reduce using rule 129 (expression -> expression DOT expression .) - ENDTYPE reduce using rule 129 (expression -> expression DOT expression .) - ENDCLASS reduce using rule 129 (expression -> expression DOT expression .) - ELSE reduce using rule 129 (expression -> expression DOT expression .) - ENDIF reduce using rule 129 (expression -> expression DOT expression .) - ENDPROCEDURE reduce using rule 129 (expression -> expression DOT expression .) - SEMICOLON reduce using rule 129 (expression -> expression DOT expression .) - NEXT reduce using rule 129 (expression -> expression DOT expression .) - ENDFUNCTION reduce using rule 129 (expression -> expression DOT expression .) - THEN reduce using rule 129 (expression -> expression DOT expression .) - DO reduce using rule 129 (expression -> expression DOT expression .) - RIGHT_PAREN reduce using rule 129 (expression -> expression DOT expression .) - OTHERWISE reduce using rule 129 (expression -> expression DOT expression .) - TO reduce using rule 129 (expression -> expression DOT expression .) - COLON reduce using rule 129 (expression -> expression DOT expression .) - STEP reduce using rule 129 (expression -> expression DOT expression .) + ASSIGN reduce using rule 130 (expression -> expression DOT expression .) + DELETE reduce using rule 130 (expression -> expression DOT expression .) + DECLARE reduce using rule 130 (expression -> expression DOT expression .) + PUBLIC reduce using rule 130 (expression -> expression DOT expression .) + PRIVATE reduce using rule 130 (expression -> expression DOT expression .) + CONSTANT reduce using rule 130 (expression -> expression DOT expression .) + INPUT reduce using rule 130 (expression -> expression DOT expression .) + OUTPUT reduce using rule 130 (expression -> expression DOT expression .) + _OUTPUT reduce using rule 130 (expression -> expression DOT expression .) + IF reduce using rule 130 (expression -> expression DOT expression .) + CASE reduce using rule 130 (expression -> expression DOT expression .) + FOR reduce using rule 130 (expression -> expression DOT expression .) + REPEAT reduce using rule 130 (expression -> expression DOT expression .) + WHILE reduce using rule 130 (expression -> expression DOT expression .) + PROCEDURE reduce using rule 130 (expression -> expression DOT expression .) + CALL reduce using rule 130 (expression -> expression DOT expression .) + FUNCTION reduce using rule 130 (expression -> expression DOT expression .) + RETURN reduce using rule 130 (expression -> expression DOT expression .) + OPENFILE reduce using rule 130 (expression -> expression DOT expression .) + READFILE reduce using rule 130 (expression -> expression DOT expression .) + WRITEFILE reduce using rule 130 (expression -> expression DOT expression .) + CLOSEFILE reduce using rule 130 (expression -> expression DOT expression .) + SEEK reduce using rule 130 (expression -> expression DOT expression .) + TYPE reduce using rule 130 (expression -> expression DOT expression .) + PASS reduce using rule 130 (expression -> expression DOT expression .) + IMPORT reduce using rule 130 (expression -> expression DOT expression .) + CLASS reduce using rule 130 (expression -> expression DOT expression .) + LEFT_SQUARE reduce using rule 130 (expression -> expression DOT expression .) + ID reduce using rule 130 (expression -> expression DOT expression .) + NOT reduce using rule 130 (expression -> expression DOT expression .) + LEFT_PAREN reduce using rule 130 (expression -> expression DOT expression .) + DATE reduce using rule 130 (expression -> expression DOT expression .) + BOOLEAN reduce using rule 130 (expression -> expression DOT expression .) + CHAR reduce using rule 130 (expression -> expression DOT expression .) + STRING reduce using rule 130 (expression -> expression DOT expression .) + REAL reduce using rule 130 (expression -> expression DOT expression .) + INTEGER reduce using rule 130 (expression -> expression DOT expression .) + NEW reduce using rule 130 (expression -> expression DOT expression .) + $end reduce using rule 130 (expression -> expression DOT expression .) + RIGHT_SQUARE reduce using rule 130 (expression -> expression DOT expression .) + COMMA reduce using rule 130 (expression -> expression DOT expression .) + UNTIL reduce using rule 130 (expression -> expression DOT expression .) + ENDWHILE reduce using rule 130 (expression -> expression DOT expression .) + ENDTYPE reduce using rule 130 (expression -> expression DOT expression .) + ENDCLASS reduce using rule 130 (expression -> expression DOT expression .) + ELSE reduce using rule 130 (expression -> expression DOT expression .) + ENDIF reduce using rule 130 (expression -> expression DOT expression .) + ENDPROCEDURE reduce using rule 130 (expression -> expression DOT expression .) + SEMICOLON reduce using rule 130 (expression -> expression DOT expression .) + NEXT reduce using rule 130 (expression -> expression DOT expression .) + ENDFUNCTION reduce using rule 130 (expression -> expression DOT expression .) + THEN reduce using rule 130 (expression -> expression DOT expression .) + DO reduce using rule 130 (expression -> expression DOT expression .) + RIGHT_PAREN reduce using rule 130 (expression -> expression DOT expression .) + OTHERWISE reduce using rule 130 (expression -> expression DOT expression .) + TO reduce using rule 130 (expression -> expression DOT expression .) + COLON reduce using rule 130 (expression -> expression DOT expression .) + STEP reduce using rule 130 (expression -> expression DOT expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -9039,147 +9111,147 @@ state 140 DOT shift and go to state 74 POINTER shift and go to state 75 - ! OR [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! AND [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! EQUAL [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! NOT_EQUAL [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! LESS [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! GREATER [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! LESS_EQUAL [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! GREATER_EQUAL [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! MOD [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! DIV [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! MUL [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! N_DIV [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! PLUS [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! MINUS [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! CONNECT [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! DOT [ reduce using rule 129 (expression -> expression DOT expression .) ] - ! POINTER [ reduce using rule 129 (expression -> expression DOT expression .) ] + ! OR [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! AND [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! EQUAL [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! NOT_EQUAL [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! LESS [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! GREATER [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! LESS_EQUAL [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! GREATER_EQUAL [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! MOD [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! DIV [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! MUL [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! N_DIV [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! PLUS [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! MINUS [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! CONNECT [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! DOT [ reduce using rule 130 (expression -> expression DOT expression .) ] + ! POINTER [ reduce using rule 130 (expression -> expression DOT expression .) ] -state 141 +state 142 - (17) expression -> LEFT_SQUARE array_items RIGHT_SQUARE . - - ASSIGN reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - OR reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - AND reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - EQUAL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - NOT_EQUAL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - LESS reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - GREATER reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - LESS_EQUAL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - GREATER_EQUAL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - MOD reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - DIV reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - MUL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - N_DIV reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - PLUS reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - MINUS reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CONNECT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - DOT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - POINTER reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - DELETE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - DECLARE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - PUBLIC reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - PRIVATE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CONSTANT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - INPUT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - OUTPUT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - _OUTPUT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - IF reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CASE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - FOR reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - REPEAT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - WHILE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - PROCEDURE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CALL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - FUNCTION reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - RETURN reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - OPENFILE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - READFILE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - WRITEFILE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CLOSEFILE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - SEEK reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - TYPE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - PASS reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - IMPORT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CLASS reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - LEFT_SQUARE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ID reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - NOT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - LEFT_PAREN reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - DATE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - BOOLEAN reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - CHAR reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - STRING reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - REAL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - INTEGER reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - NEW reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - $end reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - RIGHT_SQUARE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - COMMA reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - UNTIL reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ENDWHILE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ENDTYPE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ENDCLASS reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ELSE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ENDIF reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ENDPROCEDURE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - SEMICOLON reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - NEXT reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - ENDFUNCTION reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - THEN reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - DO reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - RIGHT_PAREN reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - OTHERWISE reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - TO reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - COLON reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) - STEP reduce using rule 17 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + (18) expression -> LEFT_SQUARE array_items RIGHT_SQUARE . + + ASSIGN reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OR reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + AND reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + EQUAL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NOT_EQUAL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LESS reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + GREATER reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LESS_EQUAL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + GREATER_EQUAL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + MOD reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DIV reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + MUL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + N_DIV reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PLUS reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + MINUS reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CONNECT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DOT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + POINTER reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DELETE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DECLARE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PUBLIC reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PRIVATE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CONSTANT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + INPUT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OUTPUT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + _OUTPUT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + IF reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CASE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + FOR reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + REPEAT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + WHILE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PROCEDURE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CALL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + FUNCTION reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + RETURN reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OPENFILE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + READFILE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + WRITEFILE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CLOSEFILE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + SEEK reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + TYPE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PASS reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + IMPORT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CLASS reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ID reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NOT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DATE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + BOOLEAN reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CHAR reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + STRING reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + REAL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + INTEGER reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NEW reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + $end reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + RIGHT_SQUARE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + COMMA reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + UNTIL reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDWHILE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDTYPE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDCLASS reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ELSE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDIF reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + SEMICOLON reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NEXT reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + THEN reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DO reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + RIGHT_PAREN reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OTHERWISE reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + TO reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + COLON reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + STEP reduce using rule 18 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) -state 142 +state 143 - (19) array_items -> array_items COMMA . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (20) array_items -> array_items COMMA . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9198,49 +9270,49 @@ state 142 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 188 + expression shift and go to state 190 -state 143 +state 144 - (24) output_expression -> output_expression COMMA . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (25) output_expression -> output_expression COMMA . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9259,12 +9331,12 @@ state 143 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 189 + expression shift and go to state 191 -state 144 +state 145 - (26) statement -> IF expression THEN . statements ELSE statements ENDIF - (27) statement -> IF expression THEN . statements ENDIF + (27) statement -> IF expression THEN . statements ELSE statements ENDIF + (28) statement -> IF expression THEN . statements ENDIF (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -9272,110 +9344,111 @@ state 144 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -9421,74 +9494,74 @@ state 144 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 190 + statements shift and go to state 192 statement shift and go to state 2 -state 145 +state 146 - (28) statement -> CASE OF expression . cases ENDCASE - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - (29) cases -> . cases case - (30) cases -> . case - (31) case -> . case_expression COLON statements SEMICOLON - (32) case -> . otherwise_statement SEMICOLON - (33) case_expression -> . expression TO expression - (34) case_expression -> . expression - (35) otherwise_statement -> . OTHERWISE COLON statements - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (29) statement -> CASE OF expression . cases ENDCASE + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + (30) cases -> . cases case + (31) cases -> . case + (32) case -> . case_expression COLON statements SEMICOLON + (33) case -> . otherwise_statement SEMICOLON + (34) case_expression -> . expression TO expression + (35) case_expression -> . expression + (36) otherwise_statement -> . OTHERWISE COLON statements + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN OR shift and go to state 59 AND shift and go to state 60 @@ -9498,16 +9571,16 @@ state 145 GREATER shift and go to state 64 LESS_EQUAL shift and go to state 65 GREATER_EQUAL shift and go to state 66 - MOD shift and go to state 150 - DIV shift and go to state 151 + MOD shift and go to state 151 + DIV shift and go to state 152 MUL shift and go to state 69 N_DIV shift and go to state 70 - PLUS shift and go to state 152 - MINUS shift and go to state 153 + PLUS shift and go to state 153 + MINUS shift and go to state 154 CONNECT shift and go to state 73 DOT shift and go to state 74 - POINTER shift and go to state 154 - OTHERWISE shift and go to state 196 + POINTER shift and go to state 155 + OTHERWISE shift and go to state 198 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -9520,54 +9593,54 @@ state 145 INTEGER shift and go to state 45 NEW shift and go to state 21 - expression shift and go to state 191 - cases shift and go to state 192 - case shift and go to state 193 - case_expression shift and go to state 194 - otherwise_statement shift and go to state 195 + expression shift and go to state 193 + cases shift and go to state 194 + case shift and go to state 195 + case_expression shift and go to state 196 + otherwise_statement shift and go to state 197 -state 146 +state 147 - (36) statement -> FOR ID ASSIGN . expression TO expression STEP expression statements NEXT ID - (37) statement -> FOR ID ASSIGN . expression TO expression statements NEXT ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (37) statement -> FOR ID ASSIGN . expression TO expression STEP expression statements NEXT ID + (38) statement -> FOR ID ASSIGN . expression TO expression statements NEXT ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9586,49 +9659,49 @@ state 146 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 197 + expression shift and go to state 199 -state 147 +state 148 - (38) statement -> REPEAT statements UNTIL . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (39) statement -> REPEAT statements UNTIL . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9647,11 +9720,11 @@ state 147 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 198 + expression shift and go to state 200 -state 148 +state 149 - (39) statement -> WHILE expression DO . statements ENDWHILE + (40) statement -> WHILE expression DO . statements ENDWHILE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -9659,110 +9732,111 @@ state 148 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -9808,124 +9882,125 @@ state 148 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 199 + statements shift and go to state 201 statement shift and go to state 2 -state 149 +state 150 - (40) statement -> WHILE expression statements . ENDWHILE + (41) statement -> WHILE expression statements . ENDWHILE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDWHILE shift and go to state 200 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDWHILE shift and go to state 202 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -9972,50 +10047,50 @@ state 149 expression shift and go to state 9 statement shift and go to state 46 -state 150 +state 151 - (53) expression -> expression MOD . expression - (115) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - LEFT_PAREN shift and go to state 201 + (54) expression -> expression MOD . expression + (116) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + LEFT_PAREN shift and go to state 203 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10032,52 +10107,52 @@ state 150 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 133 + expression shift and go to state 134 -state 151 +state 152 - (54) expression -> expression DIV . expression - (116) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - LEFT_PAREN shift and go to state 202 + (55) expression -> expression DIV . expression + (117) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + LEFT_PAREN shift and go to state 204 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10094,50 +10169,50 @@ state 151 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 134 + expression shift and go to state 135 -state 152 +state 153 - (59) expression -> expression PLUS . expression - (58) expression -> PLUS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (60) expression -> expression PLUS . expression + (59) expression -> PLUS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10156,50 +10231,50 @@ state 152 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 203 + expression shift and go to state 205 -state 153 +state 154 - (60) expression -> expression MINUS . expression - (57) expression -> MINUS . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (61) expression -> expression MINUS . expression + (58) expression -> MINUS . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10218,50 +10293,50 @@ state 153 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 204 + expression shift and go to state 206 -state 154 +state 155 - (134) expression -> expression POINTER . - (133) expression -> POINTER . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (135) expression -> expression POINTER . + (134) expression -> POINTER . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN ! shift/reduce conflict for LEFT_SQUARE resolved as shift ! shift/reduce conflict for ID resolved as shift @@ -10279,47 +10354,47 @@ state 154 ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for POINTER resolved as shift ! shift/reduce conflict for NEW resolved as shift - DO reduce using rule 134 (expression -> expression POINTER .) - OR reduce using rule 134 (expression -> expression POINTER .) - AND reduce using rule 134 (expression -> expression POINTER .) - EQUAL reduce using rule 134 (expression -> expression POINTER .) - NOT_EQUAL reduce using rule 134 (expression -> expression POINTER .) - LESS reduce using rule 134 (expression -> expression POINTER .) - GREATER reduce using rule 134 (expression -> expression POINTER .) - LESS_EQUAL reduce using rule 134 (expression -> expression POINTER .) - GREATER_EQUAL reduce using rule 134 (expression -> expression POINTER .) - MUL reduce using rule 134 (expression -> expression POINTER .) - N_DIV reduce using rule 134 (expression -> expression POINTER .) - CONNECT reduce using rule 134 (expression -> expression POINTER .) - DOT reduce using rule 134 (expression -> expression POINTER .) - DELETE reduce using rule 134 (expression -> expression POINTER .) - DECLARE reduce using rule 134 (expression -> expression POINTER .) - PUBLIC reduce using rule 134 (expression -> expression POINTER .) - PRIVATE reduce using rule 134 (expression -> expression POINTER .) - CONSTANT reduce using rule 134 (expression -> expression POINTER .) - INPUT reduce using rule 134 (expression -> expression POINTER .) - OUTPUT reduce using rule 134 (expression -> expression POINTER .) - _OUTPUT reduce using rule 134 (expression -> expression POINTER .) - IF reduce using rule 134 (expression -> expression POINTER .) - CASE reduce using rule 134 (expression -> expression POINTER .) - FOR reduce using rule 134 (expression -> expression POINTER .) - REPEAT reduce using rule 134 (expression -> expression POINTER .) - WHILE reduce using rule 134 (expression -> expression POINTER .) - PROCEDURE reduce using rule 134 (expression -> expression POINTER .) - CALL reduce using rule 134 (expression -> expression POINTER .) - FUNCTION reduce using rule 134 (expression -> expression POINTER .) - RETURN reduce using rule 134 (expression -> expression POINTER .) - OPENFILE reduce using rule 134 (expression -> expression POINTER .) - READFILE reduce using rule 134 (expression -> expression POINTER .) - WRITEFILE reduce using rule 134 (expression -> expression POINTER .) - CLOSEFILE reduce using rule 134 (expression -> expression POINTER .) - SEEK reduce using rule 134 (expression -> expression POINTER .) - TYPE reduce using rule 134 (expression -> expression POINTER .) - PASS reduce using rule 134 (expression -> expression POINTER .) - IMPORT reduce using rule 134 (expression -> expression POINTER .) - CLASS reduce using rule 134 (expression -> expression POINTER .) - OTHERWISE reduce using rule 134 (expression -> expression POINTER .) - STEP reduce using rule 134 (expression -> expression POINTER .) + DO reduce using rule 135 (expression -> expression POINTER .) + OR reduce using rule 135 (expression -> expression POINTER .) + AND reduce using rule 135 (expression -> expression POINTER .) + EQUAL reduce using rule 135 (expression -> expression POINTER .) + NOT_EQUAL reduce using rule 135 (expression -> expression POINTER .) + LESS reduce using rule 135 (expression -> expression POINTER .) + GREATER reduce using rule 135 (expression -> expression POINTER .) + LESS_EQUAL reduce using rule 135 (expression -> expression POINTER .) + GREATER_EQUAL reduce using rule 135 (expression -> expression POINTER .) + MUL reduce using rule 135 (expression -> expression POINTER .) + N_DIV reduce using rule 135 (expression -> expression POINTER .) + CONNECT reduce using rule 135 (expression -> expression POINTER .) + DOT reduce using rule 135 (expression -> expression POINTER .) + DELETE reduce using rule 135 (expression -> expression POINTER .) + DECLARE reduce using rule 135 (expression -> expression POINTER .) + PUBLIC reduce using rule 135 (expression -> expression POINTER .) + PRIVATE reduce using rule 135 (expression -> expression POINTER .) + CONSTANT reduce using rule 135 (expression -> expression POINTER .) + INPUT reduce using rule 135 (expression -> expression POINTER .) + OUTPUT reduce using rule 135 (expression -> expression POINTER .) + _OUTPUT reduce using rule 135 (expression -> expression POINTER .) + IF reduce using rule 135 (expression -> expression POINTER .) + CASE reduce using rule 135 (expression -> expression POINTER .) + FOR reduce using rule 135 (expression -> expression POINTER .) + REPEAT reduce using rule 135 (expression -> expression POINTER .) + WHILE reduce using rule 135 (expression -> expression POINTER .) + PROCEDURE reduce using rule 135 (expression -> expression POINTER .) + CALL reduce using rule 135 (expression -> expression POINTER .) + FUNCTION reduce using rule 135 (expression -> expression POINTER .) + RETURN reduce using rule 135 (expression -> expression POINTER .) + OPENFILE reduce using rule 135 (expression -> expression POINTER .) + READFILE reduce using rule 135 (expression -> expression POINTER .) + WRITEFILE reduce using rule 135 (expression -> expression POINTER .) + CLOSEFILE reduce using rule 135 (expression -> expression POINTER .) + SEEK reduce using rule 135 (expression -> expression POINTER .) + TYPE reduce using rule 135 (expression -> expression POINTER .) + PASS reduce using rule 135 (expression -> expression POINTER .) + IMPORT reduce using rule 135 (expression -> expression POINTER .) + CLASS reduce using rule 135 (expression -> expression POINTER .) + OTHERWISE reduce using rule 135 (expression -> expression POINTER .) + STEP reduce using rule 135 (expression -> expression POINTER .) LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10337,197 +10412,197 @@ state 154 POINTER shift and go to state 31 NEW shift and go to state 21 - ! MOD [ reduce using rule 134 (expression -> expression POINTER .) ] - ! DIV [ reduce using rule 134 (expression -> expression POINTER .) ] - ! PLUS [ reduce using rule 134 (expression -> expression POINTER .) ] - ! MINUS [ reduce using rule 134 (expression -> expression POINTER .) ] - ! POINTER [ reduce using rule 134 (expression -> expression POINTER .) ] - ! LEFT_SQUARE [ reduce using rule 134 (expression -> expression POINTER .) ] - ! ID [ reduce using rule 134 (expression -> expression POINTER .) ] - ! NOT [ reduce using rule 134 (expression -> expression POINTER .) ] - ! LEFT_PAREN [ reduce using rule 134 (expression -> expression POINTER .) ] - ! DATE [ reduce using rule 134 (expression -> expression POINTER .) ] - ! BOOLEAN [ reduce using rule 134 (expression -> expression POINTER .) ] - ! CHAR [ reduce using rule 134 (expression -> expression POINTER .) ] - ! STRING [ reduce using rule 134 (expression -> expression POINTER .) ] - ! REAL [ reduce using rule 134 (expression -> expression POINTER .) ] - ! INTEGER [ reduce using rule 134 (expression -> expression POINTER .) ] - ! NEW [ reduce using rule 134 (expression -> expression POINTER .) ] + ! MOD [ reduce using rule 135 (expression -> expression POINTER .) ] + ! DIV [ reduce using rule 135 (expression -> expression POINTER .) ] + ! PLUS [ reduce using rule 135 (expression -> expression POINTER .) ] + ! MINUS [ reduce using rule 135 (expression -> expression POINTER .) ] + ! POINTER [ reduce using rule 135 (expression -> expression POINTER .) ] + ! LEFT_SQUARE [ reduce using rule 135 (expression -> expression POINTER .) ] + ! ID [ reduce using rule 135 (expression -> expression POINTER .) ] + ! NOT [ reduce using rule 135 (expression -> expression POINTER .) ] + ! LEFT_PAREN [ reduce using rule 135 (expression -> expression POINTER .) ] + ! DATE [ reduce using rule 135 (expression -> expression POINTER .) ] + ! BOOLEAN [ reduce using rule 135 (expression -> expression POINTER .) ] + ! CHAR [ reduce using rule 135 (expression -> expression POINTER .) ] + ! STRING [ reduce using rule 135 (expression -> expression POINTER .) ] + ! REAL [ reduce using rule 135 (expression -> expression POINTER .) ] + ! INTEGER [ reduce using rule 135 (expression -> expression POINTER .) ] + ! NEW [ reduce using rule 135 (expression -> expression POINTER .) ] expression shift and go to state 101 -state 155 - - (82) statement -> PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - - RIGHT_PAREN shift and go to state 207 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 - - declare_parameters shift and go to state 206 - declare_parameter shift and go to state 208 - state 156 - (83) statement -> PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - - RIGHT_PAREN shift and go to state 212 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 - - declare_parameters shift and go to state 211 - declare_parameter shift and go to state 208 + (83) statement -> PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 209 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 + + declare_parameters shift and go to state 208 + declare_parameter shift and go to state 210 state 157 - (62) expression -> LEFT_PAREN expression RIGHT_PAREN . - - ASSIGN reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - OR reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - AND reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - EQUAL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - NOT_EQUAL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - LESS reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - GREATER reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - LESS_EQUAL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - GREATER_EQUAL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - MOD reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - DIV reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - MUL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - N_DIV reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - PLUS reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - MINUS reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CONNECT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - DOT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - POINTER reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - DELETE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - DECLARE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - PUBLIC reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - PRIVATE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CONSTANT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - INPUT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - OUTPUT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - _OUTPUT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - IF reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CASE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - FOR reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - REPEAT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - WHILE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - PROCEDURE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CALL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - FUNCTION reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - RETURN reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - OPENFILE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - READFILE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - WRITEFILE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CLOSEFILE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - SEEK reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - TYPE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - PASS reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - IMPORT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CLASS reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ID reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - NOT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - LEFT_PAREN reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - DATE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - BOOLEAN reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - CHAR reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - STRING reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - REAL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - INTEGER reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - NEW reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - $end reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - RIGHT_SQUARE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - COMMA reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - UNTIL reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ENDWHILE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ENDTYPE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ENDCLASS reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ELSE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ENDIF reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - SEMICOLON reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - NEXT reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - ENDFUNCTION reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - THEN reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - DO reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - RIGHT_PAREN reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - OTHERWISE reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - TO reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - COLON reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - STEP reduce using rule 62 (expression -> LEFT_PAREN expression RIGHT_PAREN .) - + (84) statement -> PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 214 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 + + declare_parameters shift and go to state 213 + declare_parameter shift and go to state 210 state 158 - (141) expression -> NEW ID LEFT_PAREN . parameters RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (63) expression -> LEFT_PAREN expression RIGHT_PAREN . + + ASSIGN reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OR reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + AND reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + EQUAL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NOT_EQUAL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LESS reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + GREATER reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LESS_EQUAL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + MOD reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DIV reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + MUL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + N_DIV reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PLUS reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + MINUS reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CONNECT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DOT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + POINTER reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DELETE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DECLARE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PUBLIC reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PRIVATE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CONSTANT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + INPUT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OUTPUT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + _OUTPUT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + IF reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CASE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + FOR reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + REPEAT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + WHILE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PROCEDURE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CALL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + FUNCTION reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + RETURN reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OPENFILE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + READFILE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + WRITEFILE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CLOSEFILE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + SEEK reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + TYPE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PASS reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + IMPORT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CLASS reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ID reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NOT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LEFT_PAREN reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DATE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + BOOLEAN reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CHAR reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + STRING reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + REAL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + INTEGER reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NEW reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + $end reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + COMMA reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + UNTIL reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDWHILE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDTYPE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDCLASS reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ELSE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDIF reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + SEMICOLON reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NEXT reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDFUNCTION reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + THEN reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DO reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OTHERWISE reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + TO reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + COLON reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + STEP reduce using rule 63 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + + +state 159 + + (142) expression -> NEW ID LEFT_PAREN . parameters RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10546,55 +10621,55 @@ state 158 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 213 + parameters shift and go to state 215 expression shift and go to state 113 -state 159 +state 160 + + (95) statement -> CALL ID LEFT_PAREN . parameters RIGHT_PAREN + (96) statement -> CALL ID LEFT_PAREN . RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - (94) statement -> CALL ID LEFT_PAREN . parameters RIGHT_PAREN - (95) statement -> CALL ID LEFT_PAREN . RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - RIGHT_PAREN shift and go to state 215 + RIGHT_PAREN shift and go to state 217 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10612,99 +10687,99 @@ state 159 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 214 + parameters shift and go to state 216 expression shift and go to state 113 -state 160 - - (96) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - - RIGHT_PAREN shift and go to state 217 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 +state 161 - declare_parameters shift and go to state 216 - declare_parameter shift and go to state 208 + (97) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 219 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 + + declare_parameters shift and go to state 218 + declare_parameter shift and go to state 210 -state 161 +state 162 - (119) statement -> OPENFILE expression FOR . READ - (120) statement -> OPENFILE expression FOR . WRITE - (121) statement -> OPENFILE expression FOR . APPEND - (122) statement -> OPENFILE expression FOR . RANDOM + (120) statement -> OPENFILE expression FOR . READ + (121) statement -> OPENFILE expression FOR . WRITE + (122) statement -> OPENFILE expression FOR . APPEND + (123) statement -> OPENFILE expression FOR . RANDOM - READ shift and go to state 218 - WRITE shift and go to state 219 - APPEND shift and go to state 220 - RANDOM shift and go to state 221 + READ shift and go to state 220 + WRITE shift and go to state 221 + APPEND shift and go to state 222 + RANDOM shift and go to state 223 -state 162 +state 163 - (123) statement -> READFILE expression COMMA . ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> READFILE expression COMMA . ID + (124) statement -> READFILE expression COMMA . ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> READFILE expression COMMA . ID - ID shift and go to state 222 + ID shift and go to state 224 -state 163 +state 164 - (125) statement -> WRITEFILE expression COMMA . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (126) statement -> WRITEFILE expression COMMA . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10723,49 +10798,49 @@ state 163 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 223 + expression shift and go to state 225 -state 164 +state 165 - (127) statement -> SEEK expression COMMA . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (128) statement -> SEEK expression COMMA . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10784,123 +10859,124 @@ state 164 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 224 + expression shift and go to state 226 -state 165 +state 166 - (128) statement -> TYPE ID statements . ENDTYPE + (129) statement -> TYPE ID statements . ENDTYPE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDTYPE shift and go to state 225 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDTYPE shift and go to state 227 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -10947,132 +11023,133 @@ state 165 statement shift and go to state 46 expression shift and go to state 9 -state 166 +state 167 - (130) statement -> TYPE ID EQUAL . LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> TYPE ID EQUAL . POINTER ID - (142) statement -> TYPE ID EQUAL . SET OF ID + (131) statement -> TYPE ID EQUAL . LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> TYPE ID EQUAL . POINTER ID + (143) statement -> TYPE ID EQUAL . SET OF ID - LEFT_PAREN shift and go to state 226 - POINTER shift and go to state 227 - SET shift and go to state 228 + LEFT_PAREN shift and go to state 228 + POINTER shift and go to state 229 + SET shift and go to state 230 -state 167 +state 168 - (138) statement -> CLASS ID statements . ENDCLASS + (139) statement -> CLASS ID statements . ENDCLASS (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDCLASS shift and go to state 229 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDCLASS shift and go to state 231 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -11119,153 +11196,153 @@ state 167 statement shift and go to state 46 expression shift and go to state 9 -state 168 - - (139) statement -> CLASS ID INHERITS . ID statements ENDCLASS - - ID shift and go to state 230 - - state 169 - (115) expression -> MOD LEFT_PAREN parameters . RIGHT_PAREN - (80) parameters -> parameters . COMMA expression + (140) statement -> CLASS ID INHERITS . ID statements ENDCLASS - RIGHT_PAREN shift and go to state 231 - COMMA shift and go to state 174 + ID shift and go to state 232 state 170 - (116) expression -> DIV LEFT_PAREN parameters . RIGHT_PAREN - (80) parameters -> parameters . COMMA expression + (116) expression -> MOD LEFT_PAREN parameters . RIGHT_PAREN + (81) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 232 - COMMA shift and go to state 174 + RIGHT_PAREN shift and go to state 233 + COMMA shift and go to state 175 state 171 - (43) expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE . - - ASSIGN reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - OR reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - AND reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - EQUAL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NOT_EQUAL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - LESS reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - GREATER reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - LESS_EQUAL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - GREATER_EQUAL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - MOD reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DIV reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - MUL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - N_DIV reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PLUS reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - MINUS reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CONNECT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DOT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - POINTER reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DELETE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DECLARE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PUBLIC reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PRIVATE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CONSTANT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - INPUT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - OUTPUT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - _OUTPUT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - IF reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CASE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - FOR reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - REPEAT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - WHILE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PROCEDURE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CALL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - FUNCTION reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - RETURN reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - OPENFILE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - READFILE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - WRITEFILE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CLOSEFILE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - SEEK reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - TYPE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PASS reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - IMPORT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CLASS reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - LEFT_SQUARE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ID reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NOT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - LEFT_PAREN reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DATE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - BOOLEAN reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CHAR reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - STRING reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - REAL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - INTEGER reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NEW reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - $end reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - RIGHT_SQUARE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - COMMA reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - UNTIL reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDWHILE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDTYPE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDCLASS reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ELSE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDIF reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDPROCEDURE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - SEMICOLON reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NEXT reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDFUNCTION reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - THEN reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DO reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - RIGHT_PAREN reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - OTHERWISE reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - TO reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - COLON reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) - STEP reduce using rule 43 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + (117) expression -> DIV LEFT_PAREN parameters . RIGHT_PAREN + (81) parameters -> parameters . COMMA expression + + RIGHT_PAREN shift and go to state 234 + COMMA shift and go to state 175 state 172 - (15) indexes -> indexes COMMA . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (44) expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE . + + ASSIGN reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OR reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + AND reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + EQUAL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NOT_EQUAL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LESS reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + GREATER reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LESS_EQUAL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + GREATER_EQUAL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MOD reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DIV reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MUL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + N_DIV reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PLUS reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MINUS reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CONNECT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DOT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + POINTER reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DELETE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DECLARE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PUBLIC reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PRIVATE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CONSTANT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INPUT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OUTPUT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + _OUTPUT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IF reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CASE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FOR reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REPEAT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WHILE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PROCEDURE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CALL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FUNCTION reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RETURN reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OPENFILE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + READFILE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WRITEFILE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLOSEFILE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEEK reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + TYPE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PASS reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IMPORT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLASS reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ID reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NOT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DATE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + BOOLEAN reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CHAR reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + STRING reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REAL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INTEGER reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEW reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + $end reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RIGHT_SQUARE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + COMMA reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + UNTIL reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDWHILE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDTYPE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDCLASS reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ELSE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDIF reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEMICOLON reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEXT reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + THEN reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DO reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RIGHT_PAREN reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OTHERWISE reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + TO reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + COLON reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + STEP reduce using rule 44 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + + +state 173 + + (16) indexes -> indexes COMMA . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -11284,130 +11361,130 @@ state 172 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 233 + expression shift and go to state 235 -state 173 +state 174 - (114) expression -> ID LEFT_PAREN parameters RIGHT_PAREN . - - ASSIGN reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - OR reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - AND reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - EQUAL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - NOT_EQUAL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - LESS reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - GREATER reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - LESS_EQUAL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - GREATER_EQUAL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - MOD reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - DIV reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - MUL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - N_DIV reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - PLUS reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - MINUS reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CONNECT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - DOT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - POINTER reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - DELETE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - DECLARE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - PUBLIC reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - PRIVATE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CONSTANT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - INPUT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - OUTPUT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - _OUTPUT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - IF reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CASE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - FOR reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - REPEAT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - WHILE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - PROCEDURE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CALL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - FUNCTION reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - RETURN reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - OPENFILE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - READFILE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - WRITEFILE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CLOSEFILE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - SEEK reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - TYPE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - PASS reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - IMPORT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CLASS reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ID reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - NOT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_PAREN reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - DATE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - BOOLEAN reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - CHAR reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - STRING reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - REAL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - INTEGER reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - NEW reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - $end reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_SQUARE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - COMMA reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - UNTIL reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDWHILE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDTYPE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDCLASS reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ELSE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDIF reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - SEMICOLON reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - NEXT reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDFUNCTION reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - THEN reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - DO reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_PAREN reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - OTHERWISE reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - TO reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - COLON reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) - STEP reduce using rule 114 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + (115) expression -> ID LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 115 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) -state 174 +state 175 - (80) parameters -> parameters COMMA . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (81) parameters -> parameters COMMA . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -11426,9 +11503,9 @@ state 174 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 234 + expression shift and go to state 236 -state 175 +state 176 (4) statement -> DECLARE ID COLON ID . @@ -11487,14 +11564,14 @@ state 175 ENDFUNCTION reduce using rule 4 (statement -> DECLARE ID COLON ID .) -state 176 +state 177 - (8) statement -> DECLARE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) statement -> DECLARE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - LEFT_SQUARE shift and go to state 235 + LEFT_SQUARE shift and go to state 237 -state 177 +state 178 (5) statement -> PUBLIC ID COLON ID . @@ -11553,91 +11630,91 @@ state 177 ENDFUNCTION reduce using rule 5 (statement -> PUBLIC ID COLON ID .) -state 178 - - (9) statement -> PUBLIC ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - - LEFT_SQUARE shift and go to state 236 +state 179 + (10) statement -> PUBLIC ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID -state 179 + LEFT_SQUARE shift and go to state 238 - (86) statement -> PUBLIC PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> PUBLIC PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - - RIGHT_PAREN shift and go to state 238 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 - - declare_parameters shift and go to state 237 - declare_parameter shift and go to state 208 state 180 - (87) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> PUBLIC PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID RIGHT_PAREN shift and go to state 240 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 declare_parameters shift and go to state 239 - declare_parameter shift and go to state 208 + declare_parameter shift and go to state 210 state 181 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID RIGHT_PAREN shift and go to state 242 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 declare_parameters shift and go to state 241 - declare_parameter shift and go to state 208 + declare_parameter shift and go to state 210 state 182 + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 244 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 + + declare_parameters shift and go to state 243 + declare_parameter shift and go to state 210 + +state 183 + (6) statement -> PRIVATE ID COLON ID . DELETE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) @@ -11695,109 +11772,109 @@ state 182 ENDFUNCTION reduce using rule 6 (statement -> PRIVATE ID COLON ID .) -state 183 - - (10) statement -> PRIVATE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - - LEFT_SQUARE shift and go to state 243 +state 184 + (11) statement -> PRIVATE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID -state 184 + LEFT_SQUARE shift and go to state 245 - (90) statement -> PRIVATE PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> PRIVATE PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - - RIGHT_PAREN shift and go to state 245 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 - - declare_parameters shift and go to state 244 - declare_parameter shift and go to state 208 state 185 - (91) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> PRIVATE PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID RIGHT_PAREN shift and go to state 247 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 declare_parameters shift and go to state 246 - declare_parameter shift and go to state 208 + declare_parameter shift and go to state 210 state 186 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (69) declare_parameters -> . declare_parameters COMMA declare_parameter - (70) declare_parameters -> . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID RIGHT_PAREN shift and go to state 249 - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 declare_parameters shift and go to state 248 - declare_parameter shift and go to state 208 + declare_parameter shift and go to state 210 state 187 + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (70) declare_parameters -> . declare_parameters COMMA declare_parameter + (71) declare_parameters -> . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 251 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 + + declare_parameters shift and go to state 250 + declare_parameter shift and go to state 210 + +state 188 + (7) statement -> CONSTANT ID EQUAL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER DELETE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) DECLARE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) @@ -11872,29 +11949,128 @@ state 187 ! POINTER [ shift and go to state 75 ] -state 188 +state 189 + + (8) statement -> CONSTANT ID ASSIGN expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ! shift/reduce conflict for MOD resolved as shift + ! shift/reduce conflict for DIV resolved as shift + ! shift/reduce conflict for PLUS resolved as shift + ! shift/reduce conflict for MINUS resolved as shift + ! shift/reduce conflict for POINTER resolved as shift + DELETE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + DECLARE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + PUBLIC reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + PRIVATE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + CONSTANT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + INPUT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + OUTPUT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + _OUTPUT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + IF reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + CASE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + FOR reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + REPEAT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + WHILE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + PROCEDURE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + CALL reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + FUNCTION reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + RETURN reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + OPENFILE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + READFILE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + WRITEFILE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + CLOSEFILE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + SEEK reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + TYPE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + PASS reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + IMPORT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + CLASS reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + LEFT_SQUARE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ID reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + NOT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + LEFT_PAREN reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + DATE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + BOOLEAN reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + CHAR reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + STRING reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + REAL reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + INTEGER reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + NEW reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + $end reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + UNTIL reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ENDWHILE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ENDTYPE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ENDCLASS reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ELSE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ENDIF reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ENDPROCEDURE reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + SEMICOLON reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + NEXT reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + ENDFUNCTION reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) + OR shift and go to state 59 + AND shift and go to state 60 + EQUAL shift and go to state 61 + NOT_EQUAL shift and go to state 62 + LESS shift and go to state 63 + GREATER shift and go to state 64 + LESS_EQUAL shift and go to state 65 + GREATER_EQUAL shift and go to state 66 + MOD shift and go to state 67 + DIV shift and go to state 68 + MUL shift and go to state 69 + N_DIV shift and go to state 70 + PLUS shift and go to state 71 + MINUS shift and go to state 72 + CONNECT shift and go to state 73 + DOT shift and go to state 74 + POINTER shift and go to state 75 + + ! MINUS [ reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) ] + ! PLUS [ reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) ] + ! MOD [ reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) ] + ! DIV [ reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) ] + ! POINTER [ reduce using rule 8 (statement -> CONSTANT ID ASSIGN expression .) ] + - (19) array_items -> array_items COMMA expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_SQUARE reduce using rule 19 (array_items -> array_items COMMA expression .) - COMMA reduce using rule 19 (array_items -> array_items COMMA expression .) +state 190 + + (20) array_items -> array_items COMMA expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 20 (array_items -> array_items COMMA expression .) + COMMA reduce using rule 20 (array_items -> array_items COMMA expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -11914,81 +12090,81 @@ state 188 POINTER shift and go to state 75 -state 189 +state 191 - (24) output_expression -> output_expression COMMA expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (25) output_expression -> output_expression COMMA expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - COMMA reduce using rule 24 (output_expression -> output_expression COMMA expression .) - DELETE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - DECLARE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - PUBLIC reduce using rule 24 (output_expression -> output_expression COMMA expression .) - PRIVATE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - CONSTANT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - INPUT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - OUTPUT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - _OUTPUT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - IF reduce using rule 24 (output_expression -> output_expression COMMA expression .) - CASE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - FOR reduce using rule 24 (output_expression -> output_expression COMMA expression .) - REPEAT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - WHILE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - PROCEDURE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - CALL reduce using rule 24 (output_expression -> output_expression COMMA expression .) - FUNCTION reduce using rule 24 (output_expression -> output_expression COMMA expression .) - RETURN reduce using rule 24 (output_expression -> output_expression COMMA expression .) - OPENFILE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - READFILE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - WRITEFILE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - CLOSEFILE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - SEEK reduce using rule 24 (output_expression -> output_expression COMMA expression .) - TYPE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - PASS reduce using rule 24 (output_expression -> output_expression COMMA expression .) - IMPORT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - CLASS reduce using rule 24 (output_expression -> output_expression COMMA expression .) - LEFT_SQUARE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ID reduce using rule 24 (output_expression -> output_expression COMMA expression .) - NOT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - LEFT_PAREN reduce using rule 24 (output_expression -> output_expression COMMA expression .) - DATE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - BOOLEAN reduce using rule 24 (output_expression -> output_expression COMMA expression .) - CHAR reduce using rule 24 (output_expression -> output_expression COMMA expression .) - STRING reduce using rule 24 (output_expression -> output_expression COMMA expression .) - REAL reduce using rule 24 (output_expression -> output_expression COMMA expression .) - INTEGER reduce using rule 24 (output_expression -> output_expression COMMA expression .) - NEW reduce using rule 24 (output_expression -> output_expression COMMA expression .) - $end reduce using rule 24 (output_expression -> output_expression COMMA expression .) - UNTIL reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ENDWHILE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ENDTYPE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ENDCLASS reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ELSE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ENDIF reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ENDPROCEDURE reduce using rule 24 (output_expression -> output_expression COMMA expression .) - SEMICOLON reduce using rule 24 (output_expression -> output_expression COMMA expression .) - NEXT reduce using rule 24 (output_expression -> output_expression COMMA expression .) - ENDFUNCTION reduce using rule 24 (output_expression -> output_expression COMMA expression .) + COMMA reduce using rule 25 (output_expression -> output_expression COMMA expression .) + DELETE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + DECLARE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + PUBLIC reduce using rule 25 (output_expression -> output_expression COMMA expression .) + PRIVATE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + CONSTANT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + INPUT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + OUTPUT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + _OUTPUT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + IF reduce using rule 25 (output_expression -> output_expression COMMA expression .) + CASE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + FOR reduce using rule 25 (output_expression -> output_expression COMMA expression .) + REPEAT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + WHILE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + PROCEDURE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + CALL reduce using rule 25 (output_expression -> output_expression COMMA expression .) + FUNCTION reduce using rule 25 (output_expression -> output_expression COMMA expression .) + RETURN reduce using rule 25 (output_expression -> output_expression COMMA expression .) + OPENFILE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + READFILE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + WRITEFILE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + CLOSEFILE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + SEEK reduce using rule 25 (output_expression -> output_expression COMMA expression .) + TYPE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + PASS reduce using rule 25 (output_expression -> output_expression COMMA expression .) + IMPORT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + CLASS reduce using rule 25 (output_expression -> output_expression COMMA expression .) + LEFT_SQUARE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ID reduce using rule 25 (output_expression -> output_expression COMMA expression .) + NOT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + LEFT_PAREN reduce using rule 25 (output_expression -> output_expression COMMA expression .) + DATE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + BOOLEAN reduce using rule 25 (output_expression -> output_expression COMMA expression .) + CHAR reduce using rule 25 (output_expression -> output_expression COMMA expression .) + STRING reduce using rule 25 (output_expression -> output_expression COMMA expression .) + REAL reduce using rule 25 (output_expression -> output_expression COMMA expression .) + INTEGER reduce using rule 25 (output_expression -> output_expression COMMA expression .) + NEW reduce using rule 25 (output_expression -> output_expression COMMA expression .) + $end reduce using rule 25 (output_expression -> output_expression COMMA expression .) + UNTIL reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ENDWHILE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ENDTYPE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ENDCLASS reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ELSE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ENDIF reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ENDPROCEDURE reduce using rule 25 (output_expression -> output_expression COMMA expression .) + SEMICOLON reduce using rule 25 (output_expression -> output_expression COMMA expression .) + NEXT reduce using rule 25 (output_expression -> output_expression COMMA expression .) + ENDFUNCTION reduce using rule 25 (output_expression -> output_expression COMMA expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -12007,130 +12183,131 @@ state 189 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 24 (output_expression -> output_expression COMMA expression .) ] - ! PLUS [ reduce using rule 24 (output_expression -> output_expression COMMA expression .) ] - ! MOD [ reduce using rule 24 (output_expression -> output_expression COMMA expression .) ] - ! DIV [ reduce using rule 24 (output_expression -> output_expression COMMA expression .) ] - ! POINTER [ reduce using rule 24 (output_expression -> output_expression COMMA expression .) ] + ! MINUS [ reduce using rule 25 (output_expression -> output_expression COMMA expression .) ] + ! PLUS [ reduce using rule 25 (output_expression -> output_expression COMMA expression .) ] + ! MOD [ reduce using rule 25 (output_expression -> output_expression COMMA expression .) ] + ! DIV [ reduce using rule 25 (output_expression -> output_expression COMMA expression .) ] + ! POINTER [ reduce using rule 25 (output_expression -> output_expression COMMA expression .) ] -state 190 +state 192 - (26) statement -> IF expression THEN statements . ELSE statements ENDIF - (27) statement -> IF expression THEN statements . ENDIF + (27) statement -> IF expression THEN statements . ELSE statements ENDIF + (28) statement -> IF expression THEN statements . ENDIF (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ELSE shift and go to state 250 - ENDIF shift and go to state 251 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ELSE shift and go to state 252 + ENDIF shift and go to state 253 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -12177,30 +12354,30 @@ state 190 expression shift and go to state 9 statement shift and go to state 46 -state 191 +state 193 - (33) case_expression -> expression . TO expression - (34) case_expression -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - TO shift and go to state 252 - COLON reduce using rule 34 (case_expression -> expression .) + (34) case_expression -> expression . TO expression + (35) case_expression -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + TO shift and go to state 254 + COLON reduce using rule 35 (case_expression -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -12220,56 +12397,56 @@ state 191 POINTER shift and go to state 75 -state 192 +state 194 - (28) statement -> CASE OF expression cases . ENDCASE - (29) cases -> cases . case - (31) case -> . case_expression COLON statements SEMICOLON - (32) case -> . otherwise_statement SEMICOLON - (33) case_expression -> . expression TO expression - (34) case_expression -> . expression - (35) otherwise_statement -> . OTHERWISE COLON statements - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDCASE shift and go to state 253 - OTHERWISE shift and go to state 196 + (29) statement -> CASE OF expression cases . ENDCASE + (30) cases -> cases . case + (32) case -> . case_expression COLON statements SEMICOLON + (33) case -> . otherwise_statement SEMICOLON + (34) case_expression -> . expression TO expression + (35) case_expression -> . expression + (36) otherwise_statement -> . OTHERWISE COLON statements + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDCASE shift and go to state 255 + OTHERWISE shift and go to state 198 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -12287,79 +12464,79 @@ state 192 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 191 - case shift and go to state 254 - case_expression shift and go to state 194 - otherwise_statement shift and go to state 195 + expression shift and go to state 193 + case shift and go to state 256 + case_expression shift and go to state 196 + otherwise_statement shift and go to state 197 -state 193 +state 195 - (30) cases -> case . - - ENDCASE reduce using rule 30 (cases -> case .) - OTHERWISE reduce using rule 30 (cases -> case .) - LEFT_SQUARE reduce using rule 30 (cases -> case .) - ID reduce using rule 30 (cases -> case .) - NOT reduce using rule 30 (cases -> case .) - MINUS reduce using rule 30 (cases -> case .) - PLUS reduce using rule 30 (cases -> case .) - LEFT_PAREN reduce using rule 30 (cases -> case .) - DATE reduce using rule 30 (cases -> case .) - BOOLEAN reduce using rule 30 (cases -> case .) - CHAR reduce using rule 30 (cases -> case .) - STRING reduce using rule 30 (cases -> case .) - REAL reduce using rule 30 (cases -> case .) - INTEGER reduce using rule 30 (cases -> case .) - MOD reduce using rule 30 (cases -> case .) - DIV reduce using rule 30 (cases -> case .) - POINTER reduce using rule 30 (cases -> case .) - NEW reduce using rule 30 (cases -> case .) + (31) cases -> case . + + ENDCASE reduce using rule 31 (cases -> case .) + OTHERWISE reduce using rule 31 (cases -> case .) + LEFT_SQUARE reduce using rule 31 (cases -> case .) + ID reduce using rule 31 (cases -> case .) + NOT reduce using rule 31 (cases -> case .) + MINUS reduce using rule 31 (cases -> case .) + PLUS reduce using rule 31 (cases -> case .) + LEFT_PAREN reduce using rule 31 (cases -> case .) + DATE reduce using rule 31 (cases -> case .) + BOOLEAN reduce using rule 31 (cases -> case .) + CHAR reduce using rule 31 (cases -> case .) + STRING reduce using rule 31 (cases -> case .) + REAL reduce using rule 31 (cases -> case .) + INTEGER reduce using rule 31 (cases -> case .) + MOD reduce using rule 31 (cases -> case .) + DIV reduce using rule 31 (cases -> case .) + POINTER reduce using rule 31 (cases -> case .) + NEW reduce using rule 31 (cases -> case .) -state 194 +state 196 - (31) case -> case_expression . COLON statements SEMICOLON + (32) case -> case_expression . COLON statements SEMICOLON - COLON shift and go to state 255 + COLON shift and go to state 257 -state 195 +state 197 - (32) case -> otherwise_statement . SEMICOLON + (33) case -> otherwise_statement . SEMICOLON - SEMICOLON shift and go to state 256 + SEMICOLON shift and go to state 258 -state 196 +state 198 - (35) otherwise_statement -> OTHERWISE . COLON statements + (36) otherwise_statement -> OTHERWISE . COLON statements - COLON shift and go to state 257 + COLON shift and go to state 259 -state 197 +state 199 - (36) statement -> FOR ID ASSIGN expression . TO expression STEP expression statements NEXT ID - (37) statement -> FOR ID ASSIGN expression . TO expression statements NEXT ID - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - TO shift and go to state 258 + (37) statement -> FOR ID ASSIGN expression . TO expression STEP expression statements NEXT ID + (38) statement -> FOR ID ASSIGN expression . TO expression statements NEXT ID + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + TO shift and go to state 260 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -12379,80 +12556,80 @@ state 197 POINTER shift and go to state 75 -state 198 +state 200 - (38) statement -> REPEAT statements UNTIL expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (39) statement -> REPEAT statements UNTIL expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - DECLARE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - PUBLIC reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - PRIVATE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - CONSTANT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - INPUT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - OUTPUT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - _OUTPUT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - IF reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - CASE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - FOR reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - REPEAT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - WHILE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - PROCEDURE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - CALL reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - FUNCTION reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - RETURN reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - OPENFILE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - READFILE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - WRITEFILE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - CLOSEFILE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - SEEK reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - TYPE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - PASS reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - IMPORT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - CLASS reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - LEFT_SQUARE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ID reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - NOT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - LEFT_PAREN reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - DATE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - BOOLEAN reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - CHAR reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - STRING reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - REAL reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - INTEGER reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - NEW reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - $end reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - UNTIL reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ENDWHILE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ENDTYPE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ENDCLASS reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ELSE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ENDIF reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ENDPROCEDURE reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - SEMICOLON reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - NEXT reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) - ENDFUNCTION reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) + DELETE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + DECLARE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + PUBLIC reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + PRIVATE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + CONSTANT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + INPUT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + OUTPUT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + _OUTPUT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + IF reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + CASE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + FOR reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + REPEAT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + WHILE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + PROCEDURE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + CALL reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + FUNCTION reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + RETURN reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + OPENFILE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + READFILE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + WRITEFILE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + CLOSEFILE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + SEEK reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + TYPE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + PASS reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + IMPORT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + CLASS reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + LEFT_SQUARE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ID reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + NOT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + LEFT_PAREN reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + DATE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + BOOLEAN reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + CHAR reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + STRING reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + REAL reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + INTEGER reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + NEW reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + $end reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + UNTIL reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ENDWHILE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ENDTYPE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ENDCLASS reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ELSE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ENDIF reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ENDPROCEDURE reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + SEMICOLON reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + NEXT reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) + ENDFUNCTION reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -12471,128 +12648,129 @@ state 198 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) ] - ! PLUS [ reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) ] - ! MOD [ reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) ] - ! DIV [ reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) ] - ! POINTER [ reduce using rule 38 (statement -> REPEAT statements UNTIL expression .) ] + ! MINUS [ reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) ] + ! PLUS [ reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) ] + ! MOD [ reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) ] + ! DIV [ reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) ] + ! POINTER [ reduce using rule 39 (statement -> REPEAT statements UNTIL expression .) ] -state 199 +state 201 - (39) statement -> WHILE expression DO statements . ENDWHILE + (40) statement -> WHILE expression DO statements . ENDWHILE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDWHILE shift and go to state 259 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDWHILE shift and go to state 261 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -12639,109 +12817,109 @@ state 199 expression shift and go to state 9 statement shift and go to state 46 -state 200 +state 202 - (40) statement -> WHILE expression statements ENDWHILE . - - DELETE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - DECLARE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - PUBLIC reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - PRIVATE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - CONSTANT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - INPUT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - OUTPUT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - _OUTPUT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - IF reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - CASE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - FOR reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - REPEAT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - WHILE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - PROCEDURE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - CALL reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - FUNCTION reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - RETURN reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - OPENFILE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - READFILE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - WRITEFILE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - CLOSEFILE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - SEEK reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - TYPE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - PASS reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - IMPORT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - CLASS reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - LEFT_SQUARE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ID reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - NOT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - MINUS reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - PLUS reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - LEFT_PAREN reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - DATE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - BOOLEAN reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - CHAR reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - STRING reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - REAL reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - INTEGER reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - MOD reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - DIV reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - POINTER reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - NEW reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - $end reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - UNTIL reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ENDWHILE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ENDTYPE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ENDCLASS reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ELSE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ENDIF reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ENDPROCEDURE reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - SEMICOLON reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - NEXT reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) - ENDFUNCTION reduce using rule 40 (statement -> WHILE expression statements ENDWHILE .) + (41) statement -> WHILE expression statements ENDWHILE . + + DELETE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + DECLARE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + PUBLIC reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + PRIVATE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + CONSTANT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + INPUT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + OUTPUT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + _OUTPUT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + IF reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + CASE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + FOR reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + REPEAT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + WHILE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + PROCEDURE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + CALL reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + FUNCTION reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + RETURN reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + OPENFILE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + READFILE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + WRITEFILE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + CLOSEFILE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + SEEK reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + TYPE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + PASS reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + IMPORT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + CLASS reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + LEFT_SQUARE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ID reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + NOT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + MINUS reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + PLUS reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + LEFT_PAREN reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + DATE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + BOOLEAN reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + CHAR reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + STRING reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + REAL reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + INTEGER reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + MOD reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + DIV reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + POINTER reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + NEW reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + $end reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + UNTIL reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ENDWHILE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ENDTYPE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ENDCLASS reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ELSE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ENDIF reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ENDPROCEDURE reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + SEMICOLON reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + NEXT reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) + ENDFUNCTION reduce using rule 41 (statement -> WHILE expression statements ENDWHILE .) -state 201 +state 203 - (115) expression -> MOD LEFT_PAREN . parameters RIGHT_PAREN - (62) expression -> LEFT_PAREN . expression RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> MOD LEFT_PAREN . parameters RIGHT_PAREN + (63) expression -> LEFT_PAREN . expression RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -12760,53 +12938,53 @@ state 201 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 169 - expression shift and go to state 260 + parameters shift and go to state 170 + expression shift and go to state 262 -state 202 +state 204 - (116) expression -> DIV LEFT_PAREN . parameters RIGHT_PAREN - (62) expression -> LEFT_PAREN . expression RIGHT_PAREN - (80) parameters -> . parameters COMMA expression - (81) parameters -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> DIV LEFT_PAREN . parameters RIGHT_PAREN + (63) expression -> LEFT_PAREN . expression RIGHT_PAREN + (81) parameters -> . parameters COMMA expression + (82) parameters -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -12825,202 +13003,202 @@ state 202 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 170 - expression shift and go to state 260 + parameters shift and go to state 171 + expression shift and go to state 262 -state 203 +state 205 - (59) expression -> expression PLUS expression . - (58) expression -> PLUS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ! reduce/reduce conflict for OR resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for AND resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for EQUAL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for NOT_EQUAL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for LESS resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for GREATER resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for LESS_EQUAL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for GREATER_EQUAL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for MOD resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for DIV resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for MUL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for N_DIV resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for PLUS resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for MINUS resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CONNECT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for DOT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for POINTER resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for DELETE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for DECLARE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for PUBLIC resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for PRIVATE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CONSTANT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for INPUT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for OUTPUT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for _OUTPUT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for IF resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CASE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for FOR resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for REPEAT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for WHILE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for PROCEDURE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CALL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for FUNCTION resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for RETURN resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for OPENFILE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for READFILE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for WRITEFILE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CLOSEFILE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for SEEK resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for TYPE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for PASS resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for IMPORT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CLASS resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for LEFT_SQUARE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for ID resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for NOT resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for LEFT_PAREN resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for DATE resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for BOOLEAN resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for CHAR resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for STRING resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for REAL resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for INTEGER resolved using rule 58 (expression -> PLUS expression .) - ! reduce/reduce conflict for NEW resolved using rule 58 (expression -> PLUS expression .) - DO reduce using rule 59 (expression -> expression PLUS expression .) - OTHERWISE reduce using rule 59 (expression -> expression PLUS expression .) - STEP reduce using rule 59 (expression -> expression PLUS expression .) - ASSIGN reduce using rule 58 (expression -> PLUS expression .) - OR reduce using rule 58 (expression -> PLUS expression .) - AND reduce using rule 58 (expression -> PLUS expression .) - EQUAL reduce using rule 58 (expression -> PLUS expression .) - NOT_EQUAL reduce using rule 58 (expression -> PLUS expression .) - LESS reduce using rule 58 (expression -> PLUS expression .) - GREATER reduce using rule 58 (expression -> PLUS expression .) - LESS_EQUAL reduce using rule 58 (expression -> PLUS expression .) - GREATER_EQUAL reduce using rule 58 (expression -> PLUS expression .) - MOD reduce using rule 58 (expression -> PLUS expression .) - DIV reduce using rule 58 (expression -> PLUS expression .) - MUL reduce using rule 58 (expression -> PLUS expression .) - N_DIV reduce using rule 58 (expression -> PLUS expression .) - PLUS reduce using rule 58 (expression -> PLUS expression .) - MINUS reduce using rule 58 (expression -> PLUS expression .) - CONNECT reduce using rule 58 (expression -> PLUS expression .) - DOT reduce using rule 58 (expression -> PLUS expression .) - POINTER reduce using rule 58 (expression -> PLUS expression .) - ENDWHILE reduce using rule 58 (expression -> PLUS expression .) - DELETE reduce using rule 58 (expression -> PLUS expression .) - DECLARE reduce using rule 58 (expression -> PLUS expression .) - PUBLIC reduce using rule 58 (expression -> PLUS expression .) - PRIVATE reduce using rule 58 (expression -> PLUS expression .) - CONSTANT reduce using rule 58 (expression -> PLUS expression .) - INPUT reduce using rule 58 (expression -> PLUS expression .) - OUTPUT reduce using rule 58 (expression -> PLUS expression .) - _OUTPUT reduce using rule 58 (expression -> PLUS expression .) - IF reduce using rule 58 (expression -> PLUS expression .) - CASE reduce using rule 58 (expression -> PLUS expression .) - FOR reduce using rule 58 (expression -> PLUS expression .) - REPEAT reduce using rule 58 (expression -> PLUS expression .) - WHILE reduce using rule 58 (expression -> PLUS expression .) - PROCEDURE reduce using rule 58 (expression -> PLUS expression .) - CALL reduce using rule 58 (expression -> PLUS expression .) - FUNCTION reduce using rule 58 (expression -> PLUS expression .) - RETURN reduce using rule 58 (expression -> PLUS expression .) - OPENFILE reduce using rule 58 (expression -> PLUS expression .) - READFILE reduce using rule 58 (expression -> PLUS expression .) - WRITEFILE reduce using rule 58 (expression -> PLUS expression .) - CLOSEFILE reduce using rule 58 (expression -> PLUS expression .) - SEEK reduce using rule 58 (expression -> PLUS expression .) - TYPE reduce using rule 58 (expression -> PLUS expression .) - PASS reduce using rule 58 (expression -> PLUS expression .) - IMPORT reduce using rule 58 (expression -> PLUS expression .) - CLASS reduce using rule 58 (expression -> PLUS expression .) - LEFT_SQUARE reduce using rule 58 (expression -> PLUS expression .) - ID reduce using rule 58 (expression -> PLUS expression .) - NOT reduce using rule 58 (expression -> PLUS expression .) - LEFT_PAREN reduce using rule 58 (expression -> PLUS expression .) - DATE reduce using rule 58 (expression -> PLUS expression .) - BOOLEAN reduce using rule 58 (expression -> PLUS expression .) - CHAR reduce using rule 58 (expression -> PLUS expression .) - STRING reduce using rule 58 (expression -> PLUS expression .) - REAL reduce using rule 58 (expression -> PLUS expression .) - INTEGER reduce using rule 58 (expression -> PLUS expression .) - NEW reduce using rule 58 (expression -> PLUS expression .) - TO reduce using rule 58 (expression -> PLUS expression .) - COLON reduce using rule 58 (expression -> PLUS expression .) - NEXT reduce using rule 58 (expression -> PLUS expression .) - - ! OR [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! AND [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! EQUAL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! NOT_EQUAL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! LESS [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! GREATER [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! LESS_EQUAL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! GREATER_EQUAL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! MOD [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! DIV [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! MUL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! N_DIV [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! PLUS [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! MINUS [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CONNECT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! DOT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! POINTER [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! DELETE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! DECLARE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! PUBLIC [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! PRIVATE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CONSTANT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! INPUT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! OUTPUT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! _OUTPUT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! IF [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CASE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! FOR [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! REPEAT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! WHILE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! PROCEDURE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CALL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! FUNCTION [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! RETURN [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! OPENFILE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! READFILE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! WRITEFILE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CLOSEFILE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! SEEK [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! TYPE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! PASS [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! IMPORT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CLASS [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! LEFT_SQUARE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! ID [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! NOT [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! LEFT_PAREN [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! DATE [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! BOOLEAN [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! CHAR [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! STRING [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! REAL [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! INTEGER [ reduce using rule 59 (expression -> expression PLUS expression .) ] - ! NEW [ reduce using rule 59 (expression -> expression PLUS expression .) ] + (60) expression -> expression PLUS expression . + (59) expression -> PLUS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ! reduce/reduce conflict for OR resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for AND resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for EQUAL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for NOT_EQUAL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for LESS resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for GREATER resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for LESS_EQUAL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for GREATER_EQUAL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for MOD resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for DIV resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for MUL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for N_DIV resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for PLUS resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for MINUS resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CONNECT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for DOT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for POINTER resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for DELETE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for DECLARE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for PUBLIC resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for PRIVATE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CONSTANT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for INPUT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for OUTPUT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for _OUTPUT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for IF resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CASE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for FOR resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for REPEAT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for WHILE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for PROCEDURE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CALL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for FUNCTION resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for RETURN resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for OPENFILE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for READFILE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for WRITEFILE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CLOSEFILE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for SEEK resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for TYPE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for PASS resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for IMPORT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CLASS resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for LEFT_SQUARE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for ID resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for NOT resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for LEFT_PAREN resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for DATE resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for BOOLEAN resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for CHAR resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for STRING resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for REAL resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for INTEGER resolved using rule 59 (expression -> PLUS expression .) + ! reduce/reduce conflict for NEW resolved using rule 59 (expression -> PLUS expression .) + DO reduce using rule 60 (expression -> expression PLUS expression .) + OTHERWISE reduce using rule 60 (expression -> expression PLUS expression .) + STEP reduce using rule 60 (expression -> expression PLUS expression .) + ASSIGN reduce using rule 59 (expression -> PLUS expression .) + OR reduce using rule 59 (expression -> PLUS expression .) + AND reduce using rule 59 (expression -> PLUS expression .) + EQUAL reduce using rule 59 (expression -> PLUS expression .) + NOT_EQUAL reduce using rule 59 (expression -> PLUS expression .) + LESS reduce using rule 59 (expression -> PLUS expression .) + GREATER reduce using rule 59 (expression -> PLUS expression .) + LESS_EQUAL reduce using rule 59 (expression -> PLUS expression .) + GREATER_EQUAL reduce using rule 59 (expression -> PLUS expression .) + MOD reduce using rule 59 (expression -> PLUS expression .) + DIV reduce using rule 59 (expression -> PLUS expression .) + MUL reduce using rule 59 (expression -> PLUS expression .) + N_DIV reduce using rule 59 (expression -> PLUS expression .) + PLUS reduce using rule 59 (expression -> PLUS expression .) + MINUS reduce using rule 59 (expression -> PLUS expression .) + CONNECT reduce using rule 59 (expression -> PLUS expression .) + DOT reduce using rule 59 (expression -> PLUS expression .) + POINTER reduce using rule 59 (expression -> PLUS expression .) + ENDWHILE reduce using rule 59 (expression -> PLUS expression .) + DELETE reduce using rule 59 (expression -> PLUS expression .) + DECLARE reduce using rule 59 (expression -> PLUS expression .) + PUBLIC reduce using rule 59 (expression -> PLUS expression .) + PRIVATE reduce using rule 59 (expression -> PLUS expression .) + CONSTANT reduce using rule 59 (expression -> PLUS expression .) + INPUT reduce using rule 59 (expression -> PLUS expression .) + OUTPUT reduce using rule 59 (expression -> PLUS expression .) + _OUTPUT reduce using rule 59 (expression -> PLUS expression .) + IF reduce using rule 59 (expression -> PLUS expression .) + CASE reduce using rule 59 (expression -> PLUS expression .) + FOR reduce using rule 59 (expression -> PLUS expression .) + REPEAT reduce using rule 59 (expression -> PLUS expression .) + WHILE reduce using rule 59 (expression -> PLUS expression .) + PROCEDURE reduce using rule 59 (expression -> PLUS expression .) + CALL reduce using rule 59 (expression -> PLUS expression .) + FUNCTION reduce using rule 59 (expression -> PLUS expression .) + RETURN reduce using rule 59 (expression -> PLUS expression .) + OPENFILE reduce using rule 59 (expression -> PLUS expression .) + READFILE reduce using rule 59 (expression -> PLUS expression .) + WRITEFILE reduce using rule 59 (expression -> PLUS expression .) + CLOSEFILE reduce using rule 59 (expression -> PLUS expression .) + SEEK reduce using rule 59 (expression -> PLUS expression .) + TYPE reduce using rule 59 (expression -> PLUS expression .) + PASS reduce using rule 59 (expression -> PLUS expression .) + IMPORT reduce using rule 59 (expression -> PLUS expression .) + CLASS reduce using rule 59 (expression -> PLUS expression .) + LEFT_SQUARE reduce using rule 59 (expression -> PLUS expression .) + ID reduce using rule 59 (expression -> PLUS expression .) + NOT reduce using rule 59 (expression -> PLUS expression .) + LEFT_PAREN reduce using rule 59 (expression -> PLUS expression .) + DATE reduce using rule 59 (expression -> PLUS expression .) + BOOLEAN reduce using rule 59 (expression -> PLUS expression .) + CHAR reduce using rule 59 (expression -> PLUS expression .) + STRING reduce using rule 59 (expression -> PLUS expression .) + REAL reduce using rule 59 (expression -> PLUS expression .) + INTEGER reduce using rule 59 (expression -> PLUS expression .) + NEW reduce using rule 59 (expression -> PLUS expression .) + TO reduce using rule 59 (expression -> PLUS expression .) + COLON reduce using rule 59 (expression -> PLUS expression .) + NEXT reduce using rule 59 (expression -> PLUS expression .) + + ! OR [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! AND [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! EQUAL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! NOT_EQUAL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! LESS [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! GREATER [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! LESS_EQUAL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! GREATER_EQUAL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! MOD [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! DIV [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! MUL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! N_DIV [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! PLUS [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! MINUS [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CONNECT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! DOT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! POINTER [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! DELETE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! DECLARE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! PUBLIC [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! PRIVATE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CONSTANT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! INPUT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! OUTPUT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! _OUTPUT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! IF [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CASE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! FOR [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! REPEAT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! WHILE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! PROCEDURE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CALL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! FUNCTION [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! RETURN [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! OPENFILE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! READFILE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! WRITEFILE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CLOSEFILE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! SEEK [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! TYPE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! PASS [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! IMPORT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CLASS [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! LEFT_SQUARE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! ID [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! NOT [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! LEFT_PAREN [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! DATE [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! BOOLEAN [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! CHAR [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! STRING [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! REAL [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! INTEGER [ reduce using rule 60 (expression -> expression PLUS expression .) ] + ! NEW [ reduce using rule 60 (expression -> expression PLUS expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -13040,199 +13218,199 @@ state 203 ! POINTER [ shift and go to state 75 ] -state 204 +state 206 - (60) expression -> expression MINUS expression . - (57) expression -> MINUS expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - ! reduce/reduce conflict for OR resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for AND resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for EQUAL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for NOT_EQUAL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for LESS resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for GREATER resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for LESS_EQUAL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for GREATER_EQUAL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for MOD resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for DIV resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for MUL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for N_DIV resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for PLUS resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for MINUS resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CONNECT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for DOT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for POINTER resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for DELETE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for DECLARE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for PUBLIC resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for PRIVATE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CONSTANT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for INPUT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for OUTPUT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for _OUTPUT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for IF resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CASE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for FOR resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for REPEAT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for WHILE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for PROCEDURE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CALL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for FUNCTION resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for RETURN resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for OPENFILE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for READFILE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for WRITEFILE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CLOSEFILE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for SEEK resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for TYPE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for PASS resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for IMPORT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CLASS resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for LEFT_SQUARE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for ID resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for NOT resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for LEFT_PAREN resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for DATE resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for BOOLEAN resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for CHAR resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for STRING resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for REAL resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for INTEGER resolved using rule 57 (expression -> MINUS expression .) - ! reduce/reduce conflict for NEW resolved using rule 57 (expression -> MINUS expression .) - DO reduce using rule 60 (expression -> expression MINUS expression .) - OTHERWISE reduce using rule 60 (expression -> expression MINUS expression .) - STEP reduce using rule 60 (expression -> expression MINUS expression .) - ASSIGN reduce using rule 57 (expression -> MINUS expression .) - OR reduce using rule 57 (expression -> MINUS expression .) - AND reduce using rule 57 (expression -> MINUS expression .) - EQUAL reduce using rule 57 (expression -> MINUS expression .) - NOT_EQUAL reduce using rule 57 (expression -> MINUS expression .) - LESS reduce using rule 57 (expression -> MINUS expression .) - GREATER reduce using rule 57 (expression -> MINUS expression .) - LESS_EQUAL reduce using rule 57 (expression -> MINUS expression .) - GREATER_EQUAL reduce using rule 57 (expression -> MINUS expression .) - MOD reduce using rule 57 (expression -> MINUS expression .) - DIV reduce using rule 57 (expression -> MINUS expression .) - MUL reduce using rule 57 (expression -> MINUS expression .) - N_DIV reduce using rule 57 (expression -> MINUS expression .) - PLUS reduce using rule 57 (expression -> MINUS expression .) - MINUS reduce using rule 57 (expression -> MINUS expression .) - CONNECT reduce using rule 57 (expression -> MINUS expression .) - DOT reduce using rule 57 (expression -> MINUS expression .) - POINTER reduce using rule 57 (expression -> MINUS expression .) - ENDWHILE reduce using rule 57 (expression -> MINUS expression .) - DELETE reduce using rule 57 (expression -> MINUS expression .) - DECLARE reduce using rule 57 (expression -> MINUS expression .) - PUBLIC reduce using rule 57 (expression -> MINUS expression .) - PRIVATE reduce using rule 57 (expression -> MINUS expression .) - CONSTANT reduce using rule 57 (expression -> MINUS expression .) - INPUT reduce using rule 57 (expression -> MINUS expression .) - OUTPUT reduce using rule 57 (expression -> MINUS expression .) - _OUTPUT reduce using rule 57 (expression -> MINUS expression .) - IF reduce using rule 57 (expression -> MINUS expression .) - CASE reduce using rule 57 (expression -> MINUS expression .) - FOR reduce using rule 57 (expression -> MINUS expression .) - REPEAT reduce using rule 57 (expression -> MINUS expression .) - WHILE reduce using rule 57 (expression -> MINUS expression .) - PROCEDURE reduce using rule 57 (expression -> MINUS expression .) - CALL reduce using rule 57 (expression -> MINUS expression .) - FUNCTION reduce using rule 57 (expression -> MINUS expression .) - RETURN reduce using rule 57 (expression -> MINUS expression .) - OPENFILE reduce using rule 57 (expression -> MINUS expression .) - READFILE reduce using rule 57 (expression -> MINUS expression .) - WRITEFILE reduce using rule 57 (expression -> MINUS expression .) - CLOSEFILE reduce using rule 57 (expression -> MINUS expression .) - SEEK reduce using rule 57 (expression -> MINUS expression .) - TYPE reduce using rule 57 (expression -> MINUS expression .) - PASS reduce using rule 57 (expression -> MINUS expression .) - IMPORT reduce using rule 57 (expression -> MINUS expression .) - CLASS reduce using rule 57 (expression -> MINUS expression .) - LEFT_SQUARE reduce using rule 57 (expression -> MINUS expression .) - ID reduce using rule 57 (expression -> MINUS expression .) - NOT reduce using rule 57 (expression -> MINUS expression .) - LEFT_PAREN reduce using rule 57 (expression -> MINUS expression .) - DATE reduce using rule 57 (expression -> MINUS expression .) - BOOLEAN reduce using rule 57 (expression -> MINUS expression .) - CHAR reduce using rule 57 (expression -> MINUS expression .) - STRING reduce using rule 57 (expression -> MINUS expression .) - REAL reduce using rule 57 (expression -> MINUS expression .) - INTEGER reduce using rule 57 (expression -> MINUS expression .) - NEW reduce using rule 57 (expression -> MINUS expression .) - TO reduce using rule 57 (expression -> MINUS expression .) - COLON reduce using rule 57 (expression -> MINUS expression .) - NEXT reduce using rule 57 (expression -> MINUS expression .) - - ! OR [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! AND [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! EQUAL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! NOT_EQUAL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! LESS [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! GREATER [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! LESS_EQUAL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! GREATER_EQUAL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! MOD [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! DIV [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! MUL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! N_DIV [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! PLUS [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! MINUS [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CONNECT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! DOT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! POINTER [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! DELETE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! DECLARE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! PUBLIC [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! PRIVATE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CONSTANT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! INPUT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! OUTPUT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! _OUTPUT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! IF [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CASE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! FOR [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! REPEAT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! WHILE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! PROCEDURE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CALL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! FUNCTION [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! RETURN [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! OPENFILE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! READFILE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! WRITEFILE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CLOSEFILE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! SEEK [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! TYPE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! PASS [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! IMPORT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CLASS [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! LEFT_SQUARE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! ID [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! NOT [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! LEFT_PAREN [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! DATE [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! BOOLEAN [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! CHAR [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! STRING [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! REAL [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! INTEGER [ reduce using rule 60 (expression -> expression MINUS expression .) ] - ! NEW [ reduce using rule 60 (expression -> expression MINUS expression .) ] + (61) expression -> expression MINUS expression . + (58) expression -> MINUS expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + ! reduce/reduce conflict for OR resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for AND resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for EQUAL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for NOT_EQUAL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for LESS resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for GREATER resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for LESS_EQUAL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for GREATER_EQUAL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for MOD resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for DIV resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for MUL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for N_DIV resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for PLUS resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for MINUS resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CONNECT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for DOT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for POINTER resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for DELETE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for DECLARE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for PUBLIC resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for PRIVATE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CONSTANT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for INPUT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for OUTPUT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for _OUTPUT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for IF resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CASE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for FOR resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for REPEAT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for WHILE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for PROCEDURE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CALL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for FUNCTION resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for RETURN resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for OPENFILE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for READFILE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for WRITEFILE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CLOSEFILE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for SEEK resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for TYPE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for PASS resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for IMPORT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CLASS resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for LEFT_SQUARE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for ID resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for NOT resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for LEFT_PAREN resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for DATE resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for BOOLEAN resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for CHAR resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for STRING resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for REAL resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for INTEGER resolved using rule 58 (expression -> MINUS expression .) + ! reduce/reduce conflict for NEW resolved using rule 58 (expression -> MINUS expression .) + DO reduce using rule 61 (expression -> expression MINUS expression .) + OTHERWISE reduce using rule 61 (expression -> expression MINUS expression .) + STEP reduce using rule 61 (expression -> expression MINUS expression .) + ASSIGN reduce using rule 58 (expression -> MINUS expression .) + OR reduce using rule 58 (expression -> MINUS expression .) + AND reduce using rule 58 (expression -> MINUS expression .) + EQUAL reduce using rule 58 (expression -> MINUS expression .) + NOT_EQUAL reduce using rule 58 (expression -> MINUS expression .) + LESS reduce using rule 58 (expression -> MINUS expression .) + GREATER reduce using rule 58 (expression -> MINUS expression .) + LESS_EQUAL reduce using rule 58 (expression -> MINUS expression .) + GREATER_EQUAL reduce using rule 58 (expression -> MINUS expression .) + MOD reduce using rule 58 (expression -> MINUS expression .) + DIV reduce using rule 58 (expression -> MINUS expression .) + MUL reduce using rule 58 (expression -> MINUS expression .) + N_DIV reduce using rule 58 (expression -> MINUS expression .) + PLUS reduce using rule 58 (expression -> MINUS expression .) + MINUS reduce using rule 58 (expression -> MINUS expression .) + CONNECT reduce using rule 58 (expression -> MINUS expression .) + DOT reduce using rule 58 (expression -> MINUS expression .) + POINTER reduce using rule 58 (expression -> MINUS expression .) + ENDWHILE reduce using rule 58 (expression -> MINUS expression .) + DELETE reduce using rule 58 (expression -> MINUS expression .) + DECLARE reduce using rule 58 (expression -> MINUS expression .) + PUBLIC reduce using rule 58 (expression -> MINUS expression .) + PRIVATE reduce using rule 58 (expression -> MINUS expression .) + CONSTANT reduce using rule 58 (expression -> MINUS expression .) + INPUT reduce using rule 58 (expression -> MINUS expression .) + OUTPUT reduce using rule 58 (expression -> MINUS expression .) + _OUTPUT reduce using rule 58 (expression -> MINUS expression .) + IF reduce using rule 58 (expression -> MINUS expression .) + CASE reduce using rule 58 (expression -> MINUS expression .) + FOR reduce using rule 58 (expression -> MINUS expression .) + REPEAT reduce using rule 58 (expression -> MINUS expression .) + WHILE reduce using rule 58 (expression -> MINUS expression .) + PROCEDURE reduce using rule 58 (expression -> MINUS expression .) + CALL reduce using rule 58 (expression -> MINUS expression .) + FUNCTION reduce using rule 58 (expression -> MINUS expression .) + RETURN reduce using rule 58 (expression -> MINUS expression .) + OPENFILE reduce using rule 58 (expression -> MINUS expression .) + READFILE reduce using rule 58 (expression -> MINUS expression .) + WRITEFILE reduce using rule 58 (expression -> MINUS expression .) + CLOSEFILE reduce using rule 58 (expression -> MINUS expression .) + SEEK reduce using rule 58 (expression -> MINUS expression .) + TYPE reduce using rule 58 (expression -> MINUS expression .) + PASS reduce using rule 58 (expression -> MINUS expression .) + IMPORT reduce using rule 58 (expression -> MINUS expression .) + CLASS reduce using rule 58 (expression -> MINUS expression .) + LEFT_SQUARE reduce using rule 58 (expression -> MINUS expression .) + ID reduce using rule 58 (expression -> MINUS expression .) + NOT reduce using rule 58 (expression -> MINUS expression .) + LEFT_PAREN reduce using rule 58 (expression -> MINUS expression .) + DATE reduce using rule 58 (expression -> MINUS expression .) + BOOLEAN reduce using rule 58 (expression -> MINUS expression .) + CHAR reduce using rule 58 (expression -> MINUS expression .) + STRING reduce using rule 58 (expression -> MINUS expression .) + REAL reduce using rule 58 (expression -> MINUS expression .) + INTEGER reduce using rule 58 (expression -> MINUS expression .) + NEW reduce using rule 58 (expression -> MINUS expression .) + TO reduce using rule 58 (expression -> MINUS expression .) + COLON reduce using rule 58 (expression -> MINUS expression .) + NEXT reduce using rule 58 (expression -> MINUS expression .) + + ! OR [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! AND [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! EQUAL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! NOT_EQUAL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! LESS [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! GREATER [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! LESS_EQUAL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! GREATER_EQUAL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! MOD [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! DIV [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! MUL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! N_DIV [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! PLUS [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! MINUS [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CONNECT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! DOT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! POINTER [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! DELETE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! DECLARE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! PUBLIC [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! PRIVATE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CONSTANT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! INPUT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! OUTPUT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! _OUTPUT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! IF [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CASE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! FOR [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! REPEAT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! WHILE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! PROCEDURE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CALL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! FUNCTION [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! RETURN [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! OPENFILE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! READFILE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! WRITEFILE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CLOSEFILE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! SEEK [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! TYPE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! PASS [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! IMPORT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CLASS [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! LEFT_SQUARE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! ID [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! NOT [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! LEFT_PAREN [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! DATE [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! BOOLEAN [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! CHAR [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! STRING [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! REAL [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! INTEGER [ reduce using rule 61 (expression -> expression MINUS expression .) ] + ! NEW [ reduce using rule 61 (expression -> expression MINUS expression .) ] ! OR [ shift and go to state 59 ] ! AND [ shift and go to state 60 ] ! EQUAL [ shift and go to state 61 ] @@ -13252,27 +13430,27 @@ state 204 ! POINTER [ shift and go to state 75 ] -state 205 +state 207 - (71) declare_parameter -> ID . COLON ID - (72) declare_parameter -> ID . COLON ARRAY - (77) declare_parameter -> ID . COLON ARRAY OF ID + (72) declare_parameter -> ID . COLON ID + (73) declare_parameter -> ID . COLON ARRAY + (78) declare_parameter -> ID . COLON ARRAY OF ID - COLON shift and go to state 261 + COLON shift and go to state 263 -state 206 +state 208 - (82) statement -> PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 262 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 264 + COMMA shift and go to state 265 -state 207 +state 209 - (84) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (85) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -13280,110 +13458,111 @@ state 207 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -13428,48 +13607,48 @@ state 207 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 264 + statements shift and go to state 266 statement shift and go to state 2 expression shift and go to state 9 -state 208 +state 210 - (70) declare_parameters -> declare_parameter . + (71) declare_parameters -> declare_parameter . - RIGHT_PAREN reduce using rule 70 (declare_parameters -> declare_parameter .) - COMMA reduce using rule 70 (declare_parameters -> declare_parameter .) + RIGHT_PAREN reduce using rule 71 (declare_parameters -> declare_parameter .) + COMMA reduce using rule 71 (declare_parameters -> declare_parameter .) -state 209 +state 211 - (73) declare_parameter -> BYREF . ID COLON ID - (74) declare_parameter -> BYREF . ID COLON ARRAY - (78) declare_parameter -> BYREF . ID COLON ARRAY OF ID + (74) declare_parameter -> BYREF . ID COLON ID + (75) declare_parameter -> BYREF . ID COLON ARRAY + (79) declare_parameter -> BYREF . ID COLON ARRAY OF ID - ID shift and go to state 265 + ID shift and go to state 267 -state 210 +state 212 - (75) declare_parameter -> BYVAL . ID COLON ID - (76) declare_parameter -> BYVAL . ID COLON ARRAY - (79) declare_parameter -> BYVAL . ID COLON ARRAY OF ID + (76) declare_parameter -> BYVAL . ID COLON ID + (77) declare_parameter -> BYVAL . ID COLON ARRAY + (80) declare_parameter -> BYVAL . ID COLON ARRAY OF ID - ID shift and go to state 266 + ID shift and go to state 268 -state 211 +state 213 - (83) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 267 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 269 + COMMA shift and go to state 265 -state 212 +state 214 - (85) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (86) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -13477,110 +13656,111 @@ state 212 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -13625,480 +13805,480 @@ state 212 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 268 + statements shift and go to state 270 statement shift and go to state 2 expression shift and go to state 9 -state 213 +state 215 - (141) expression -> NEW ID LEFT_PAREN parameters . RIGHT_PAREN - (80) parameters -> parameters . COMMA expression + (142) expression -> NEW ID LEFT_PAREN parameters . RIGHT_PAREN + (81) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 269 - COMMA shift and go to state 174 + RIGHT_PAREN shift and go to state 271 + COMMA shift and go to state 175 -state 214 +state 216 - (94) statement -> CALL ID LEFT_PAREN parameters . RIGHT_PAREN - (80) parameters -> parameters . COMMA expression + (95) statement -> CALL ID LEFT_PAREN parameters . RIGHT_PAREN + (81) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 270 - COMMA shift and go to state 174 + RIGHT_PAREN shift and go to state 272 + COMMA shift and go to state 175 -state 215 +state 217 - (95) statement -> CALL ID LEFT_PAREN RIGHT_PAREN . - - DELETE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - DECLARE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - PUBLIC reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - PRIVATE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - CONSTANT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - INPUT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - OUTPUT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - _OUTPUT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - IF reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - CASE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - FOR reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - REPEAT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - WHILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - PROCEDURE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - CALL reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - FUNCTION reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - RETURN reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - OPENFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - READFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - WRITEFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - CLOSEFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - SEEK reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - TYPE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - PASS reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - IMPORT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - CLASS reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ID reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - NOT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - MINUS reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - PLUS reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - LEFT_PAREN reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - DATE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - BOOLEAN reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - CHAR reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - STRING reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - REAL reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - INTEGER reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - MOD reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - DIV reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - POINTER reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - NEW reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - $end reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - UNTIL reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ENDWHILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ENDTYPE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ENDCLASS reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ELSE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ENDIF reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - SEMICOLON reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - NEXT reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) - ENDFUNCTION reduce using rule 95 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + (96) statement -> CALL ID LEFT_PAREN RIGHT_PAREN . + + DELETE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + DECLARE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PUBLIC reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PRIVATE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CONSTANT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + INPUT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + OUTPUT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + _OUTPUT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + IF reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CASE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + FOR reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + REPEAT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + WHILE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PROCEDURE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CALL reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + FUNCTION reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + RETURN reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + OPENFILE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + READFILE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + WRITEFILE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CLOSEFILE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + SEEK reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + TYPE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PASS reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + IMPORT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CLASS reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ID reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + NOT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + MINUS reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PLUS reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + LEFT_PAREN reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + DATE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + BOOLEAN reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CHAR reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + STRING reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + REAL reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + INTEGER reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + MOD reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + DIV reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + POINTER reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + NEW reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + $end reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + UNTIL reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDWHILE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDTYPE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDCLASS reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ELSE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDIF reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + SEMICOLON reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + NEXT reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDFUNCTION reduce using rule 96 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) -state 216 +state 218 - (96) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 271 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 273 + COMMA shift and go to state 265 -state 217 +state 219 - (98) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION + (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (100) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 272 + RETURNS shift and go to state 274 -state 218 +state 220 - (119) statement -> OPENFILE expression FOR READ . - - DELETE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - DECLARE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - PUBLIC reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - PRIVATE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - CONSTANT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - INPUT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - OUTPUT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - _OUTPUT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - IF reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - CASE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - FOR reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - REPEAT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - WHILE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - PROCEDURE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - CALL reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - FUNCTION reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - RETURN reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - OPENFILE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - READFILE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - WRITEFILE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - CLOSEFILE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - SEEK reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - TYPE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - PASS reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - IMPORT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - CLASS reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - LEFT_SQUARE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ID reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - NOT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - MINUS reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - PLUS reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - LEFT_PAREN reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - DATE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - BOOLEAN reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - CHAR reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - STRING reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - REAL reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - INTEGER reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - MOD reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - DIV reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - POINTER reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - NEW reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - $end reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - UNTIL reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ENDWHILE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ENDTYPE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ENDCLASS reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ELSE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ENDIF reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ENDPROCEDURE reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - SEMICOLON reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - NEXT reduce using rule 119 (statement -> OPENFILE expression FOR READ .) - ENDFUNCTION reduce using rule 119 (statement -> OPENFILE expression FOR READ .) + (120) statement -> OPENFILE expression FOR READ . + + DELETE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + DECLARE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + PUBLIC reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + PRIVATE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + CONSTANT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + INPUT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + OUTPUT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + _OUTPUT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + IF reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + CASE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + FOR reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + REPEAT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + WHILE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + PROCEDURE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + CALL reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + FUNCTION reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + RETURN reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + OPENFILE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + READFILE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + WRITEFILE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + CLOSEFILE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + SEEK reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + TYPE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + PASS reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + IMPORT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + CLASS reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + LEFT_SQUARE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ID reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + NOT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + MINUS reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + PLUS reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + LEFT_PAREN reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + DATE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + BOOLEAN reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + CHAR reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + STRING reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + REAL reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + INTEGER reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + MOD reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + DIV reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + POINTER reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + NEW reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + $end reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + UNTIL reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ENDWHILE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ENDTYPE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ENDCLASS reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ELSE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ENDIF reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ENDPROCEDURE reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + SEMICOLON reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + NEXT reduce using rule 120 (statement -> OPENFILE expression FOR READ .) + ENDFUNCTION reduce using rule 120 (statement -> OPENFILE expression FOR READ .) -state 219 +state 221 - (120) statement -> OPENFILE expression FOR WRITE . - - DELETE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - DECLARE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - PUBLIC reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - PRIVATE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - CONSTANT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - INPUT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - OUTPUT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - _OUTPUT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - IF reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - CASE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - FOR reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - REPEAT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - WHILE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - PROCEDURE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - CALL reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - FUNCTION reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - RETURN reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - OPENFILE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - READFILE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - WRITEFILE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - CLOSEFILE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - SEEK reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - TYPE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - PASS reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - IMPORT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - CLASS reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - LEFT_SQUARE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ID reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - NOT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - MINUS reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - PLUS reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - LEFT_PAREN reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - DATE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - BOOLEAN reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - CHAR reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - STRING reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - REAL reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - INTEGER reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - MOD reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - DIV reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - POINTER reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - NEW reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - $end reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - UNTIL reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ENDWHILE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ENDTYPE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ENDCLASS reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ELSE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ENDIF reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ENDPROCEDURE reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - SEMICOLON reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - NEXT reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) - ENDFUNCTION reduce using rule 120 (statement -> OPENFILE expression FOR WRITE .) + (121) statement -> OPENFILE expression FOR WRITE . + + DELETE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + DECLARE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + PUBLIC reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + PRIVATE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + CONSTANT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + INPUT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + OUTPUT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + _OUTPUT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + IF reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + CASE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + FOR reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + REPEAT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + WHILE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + PROCEDURE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + CALL reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + FUNCTION reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + RETURN reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + OPENFILE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + READFILE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + WRITEFILE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + CLOSEFILE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + SEEK reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + TYPE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + PASS reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + IMPORT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + CLASS reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + LEFT_SQUARE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ID reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + NOT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + MINUS reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + PLUS reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + LEFT_PAREN reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + DATE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + BOOLEAN reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + CHAR reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + STRING reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + REAL reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + INTEGER reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + MOD reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + DIV reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + POINTER reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + NEW reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + $end reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + UNTIL reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ENDWHILE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ENDTYPE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ENDCLASS reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ELSE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ENDIF reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ENDPROCEDURE reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + SEMICOLON reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + NEXT reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) + ENDFUNCTION reduce using rule 121 (statement -> OPENFILE expression FOR WRITE .) -state 220 +state 222 - (121) statement -> OPENFILE expression FOR APPEND . - - DELETE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - DECLARE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - PUBLIC reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - PRIVATE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - CONSTANT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - INPUT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - OUTPUT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - _OUTPUT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - IF reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - CASE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - FOR reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - REPEAT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - WHILE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - PROCEDURE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - CALL reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - FUNCTION reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - RETURN reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - OPENFILE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - READFILE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - WRITEFILE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - CLOSEFILE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - SEEK reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - TYPE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - PASS reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - IMPORT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - CLASS reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - LEFT_SQUARE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ID reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - NOT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - MINUS reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - PLUS reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - LEFT_PAREN reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - DATE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - BOOLEAN reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - CHAR reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - STRING reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - REAL reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - INTEGER reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - MOD reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - DIV reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - POINTER reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - NEW reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - $end reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - UNTIL reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ENDWHILE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ENDTYPE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ENDCLASS reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ELSE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ENDIF reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ENDPROCEDURE reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - SEMICOLON reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - NEXT reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) - ENDFUNCTION reduce using rule 121 (statement -> OPENFILE expression FOR APPEND .) + (122) statement -> OPENFILE expression FOR APPEND . + + DELETE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + DECLARE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + PUBLIC reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + PRIVATE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + CONSTANT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + INPUT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + OUTPUT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + _OUTPUT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + IF reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + CASE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + FOR reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + REPEAT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + WHILE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + PROCEDURE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + CALL reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + FUNCTION reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + RETURN reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + OPENFILE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + READFILE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + WRITEFILE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + CLOSEFILE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + SEEK reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + TYPE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + PASS reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + IMPORT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + CLASS reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + LEFT_SQUARE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ID reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + NOT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + MINUS reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + PLUS reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + LEFT_PAREN reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + DATE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + BOOLEAN reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + CHAR reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + STRING reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + REAL reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + INTEGER reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + MOD reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + DIV reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + POINTER reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + NEW reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + $end reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + UNTIL reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ENDWHILE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ENDTYPE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ENDCLASS reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ELSE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ENDIF reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ENDPROCEDURE reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + SEMICOLON reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + NEXT reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) + ENDFUNCTION reduce using rule 122 (statement -> OPENFILE expression FOR APPEND .) -state 221 +state 223 - (122) statement -> OPENFILE expression FOR RANDOM . - - DELETE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - DECLARE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - PUBLIC reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - PRIVATE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - CONSTANT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - INPUT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - OUTPUT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - _OUTPUT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - IF reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - CASE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - FOR reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - REPEAT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - WHILE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - PROCEDURE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - CALL reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - FUNCTION reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - RETURN reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - OPENFILE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - READFILE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - WRITEFILE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - CLOSEFILE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - SEEK reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - TYPE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - PASS reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - IMPORT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - CLASS reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - LEFT_SQUARE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ID reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - NOT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - MINUS reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - PLUS reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - LEFT_PAREN reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - DATE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - BOOLEAN reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - CHAR reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - STRING reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - REAL reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - INTEGER reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - MOD reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - DIV reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - POINTER reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - NEW reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - $end reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - UNTIL reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ENDWHILE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ENDTYPE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ENDCLASS reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ELSE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ENDIF reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ENDPROCEDURE reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - SEMICOLON reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - NEXT reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) - ENDFUNCTION reduce using rule 122 (statement -> OPENFILE expression FOR RANDOM .) + (123) statement -> OPENFILE expression FOR RANDOM . + + DELETE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + DECLARE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + PUBLIC reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + PRIVATE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + CONSTANT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + INPUT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + OUTPUT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + _OUTPUT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + IF reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + CASE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + FOR reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + REPEAT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + WHILE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + PROCEDURE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + CALL reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + FUNCTION reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + RETURN reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + OPENFILE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + READFILE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + WRITEFILE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + CLOSEFILE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + SEEK reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + TYPE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + PASS reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + IMPORT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + CLASS reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + LEFT_SQUARE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ID reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + NOT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + MINUS reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + PLUS reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + LEFT_PAREN reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + DATE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + BOOLEAN reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + CHAR reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + STRING reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + REAL reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + INTEGER reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + MOD reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + DIV reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + POINTER reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + NEW reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + $end reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + UNTIL reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ENDWHILE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ENDTYPE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ENDCLASS reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ELSE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ENDIF reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ENDPROCEDURE reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + SEMICOLON reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + NEXT reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) + ENDFUNCTION reduce using rule 123 (statement -> OPENFILE expression FOR RANDOM .) -state 222 +state 224 - (123) statement -> READFILE expression COMMA ID . LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> READFILE expression COMMA ID . + (124) statement -> READFILE expression COMMA ID . LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> READFILE expression COMMA ID . ! shift/reduce conflict for LEFT_SQUARE resolved as shift - LEFT_SQUARE shift and go to state 273 - DELETE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - DECLARE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - PUBLIC reduce using rule 124 (statement -> READFILE expression COMMA ID .) - PRIVATE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - CONSTANT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - INPUT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - OUTPUT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - _OUTPUT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - IF reduce using rule 124 (statement -> READFILE expression COMMA ID .) - CASE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - FOR reduce using rule 124 (statement -> READFILE expression COMMA ID .) - REPEAT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - WHILE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - PROCEDURE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - CALL reduce using rule 124 (statement -> READFILE expression COMMA ID .) - FUNCTION reduce using rule 124 (statement -> READFILE expression COMMA ID .) - RETURN reduce using rule 124 (statement -> READFILE expression COMMA ID .) - OPENFILE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - READFILE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - WRITEFILE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - CLOSEFILE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - SEEK reduce using rule 124 (statement -> READFILE expression COMMA ID .) - TYPE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - PASS reduce using rule 124 (statement -> READFILE expression COMMA ID .) - IMPORT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - CLASS reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ID reduce using rule 124 (statement -> READFILE expression COMMA ID .) - NOT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - MINUS reduce using rule 124 (statement -> READFILE expression COMMA ID .) - PLUS reduce using rule 124 (statement -> READFILE expression COMMA ID .) - LEFT_PAREN reduce using rule 124 (statement -> READFILE expression COMMA ID .) - DATE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - BOOLEAN reduce using rule 124 (statement -> READFILE expression COMMA ID .) - CHAR reduce using rule 124 (statement -> READFILE expression COMMA ID .) - STRING reduce using rule 124 (statement -> READFILE expression COMMA ID .) - REAL reduce using rule 124 (statement -> READFILE expression COMMA ID .) - INTEGER reduce using rule 124 (statement -> READFILE expression COMMA ID .) - MOD reduce using rule 124 (statement -> READFILE expression COMMA ID .) - DIV reduce using rule 124 (statement -> READFILE expression COMMA ID .) - POINTER reduce using rule 124 (statement -> READFILE expression COMMA ID .) - NEW reduce using rule 124 (statement -> READFILE expression COMMA ID .) - $end reduce using rule 124 (statement -> READFILE expression COMMA ID .) - UNTIL reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ENDWHILE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ENDTYPE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ENDCLASS reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ELSE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ENDIF reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ENDPROCEDURE reduce using rule 124 (statement -> READFILE expression COMMA ID .) - SEMICOLON reduce using rule 124 (statement -> READFILE expression COMMA ID .) - NEXT reduce using rule 124 (statement -> READFILE expression COMMA ID .) - ENDFUNCTION reduce using rule 124 (statement -> READFILE expression COMMA ID .) - - ! LEFT_SQUARE [ reduce using rule 124 (statement -> READFILE expression COMMA ID .) ] + LEFT_SQUARE shift and go to state 275 + DELETE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + DECLARE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + PUBLIC reduce using rule 125 (statement -> READFILE expression COMMA ID .) + PRIVATE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + CONSTANT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + INPUT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + OUTPUT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + _OUTPUT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + IF reduce using rule 125 (statement -> READFILE expression COMMA ID .) + CASE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + FOR reduce using rule 125 (statement -> READFILE expression COMMA ID .) + REPEAT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + WHILE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + PROCEDURE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + CALL reduce using rule 125 (statement -> READFILE expression COMMA ID .) + FUNCTION reduce using rule 125 (statement -> READFILE expression COMMA ID .) + RETURN reduce using rule 125 (statement -> READFILE expression COMMA ID .) + OPENFILE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + READFILE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + WRITEFILE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + CLOSEFILE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + SEEK reduce using rule 125 (statement -> READFILE expression COMMA ID .) + TYPE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + PASS reduce using rule 125 (statement -> READFILE expression COMMA ID .) + IMPORT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + CLASS reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ID reduce using rule 125 (statement -> READFILE expression COMMA ID .) + NOT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + MINUS reduce using rule 125 (statement -> READFILE expression COMMA ID .) + PLUS reduce using rule 125 (statement -> READFILE expression COMMA ID .) + LEFT_PAREN reduce using rule 125 (statement -> READFILE expression COMMA ID .) + DATE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + BOOLEAN reduce using rule 125 (statement -> READFILE expression COMMA ID .) + CHAR reduce using rule 125 (statement -> READFILE expression COMMA ID .) + STRING reduce using rule 125 (statement -> READFILE expression COMMA ID .) + REAL reduce using rule 125 (statement -> READFILE expression COMMA ID .) + INTEGER reduce using rule 125 (statement -> READFILE expression COMMA ID .) + MOD reduce using rule 125 (statement -> READFILE expression COMMA ID .) + DIV reduce using rule 125 (statement -> READFILE expression COMMA ID .) + POINTER reduce using rule 125 (statement -> READFILE expression COMMA ID .) + NEW reduce using rule 125 (statement -> READFILE expression COMMA ID .) + $end reduce using rule 125 (statement -> READFILE expression COMMA ID .) + UNTIL reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ENDWHILE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ENDTYPE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ENDCLASS reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ELSE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ENDIF reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ENDPROCEDURE reduce using rule 125 (statement -> READFILE expression COMMA ID .) + SEMICOLON reduce using rule 125 (statement -> READFILE expression COMMA ID .) + NEXT reduce using rule 125 (statement -> READFILE expression COMMA ID .) + ENDFUNCTION reduce using rule 125 (statement -> READFILE expression COMMA ID .) + + ! LEFT_SQUARE [ reduce using rule 125 (statement -> READFILE expression COMMA ID .) ] -state 223 +state 225 - (125) statement -> WRITEFILE expression COMMA expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (126) statement -> WRITEFILE expression COMMA expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - DECLARE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - PUBLIC reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - PRIVATE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - CONSTANT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - INPUT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - OUTPUT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - _OUTPUT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - IF reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - CASE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - FOR reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - REPEAT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - WHILE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - PROCEDURE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - CALL reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - FUNCTION reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - RETURN reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - OPENFILE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - READFILE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - WRITEFILE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - CLOSEFILE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - SEEK reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - TYPE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - PASS reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - IMPORT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - CLASS reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - LEFT_SQUARE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ID reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - NOT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - LEFT_PAREN reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - DATE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - BOOLEAN reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - CHAR reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - STRING reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - REAL reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - INTEGER reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - NEW reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - $end reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - UNTIL reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ENDWHILE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ENDTYPE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ENDCLASS reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ELSE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ENDIF reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ENDPROCEDURE reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - SEMICOLON reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - NEXT reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) - ENDFUNCTION reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) + DELETE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + DECLARE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + PUBLIC reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + PRIVATE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + CONSTANT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + INPUT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + OUTPUT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + _OUTPUT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + IF reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + CASE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + FOR reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + REPEAT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + WHILE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + PROCEDURE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + CALL reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + FUNCTION reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + RETURN reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + OPENFILE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + READFILE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + WRITEFILE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + CLOSEFILE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + SEEK reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + TYPE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + PASS reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + IMPORT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + CLASS reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + LEFT_SQUARE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ID reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + NOT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + LEFT_PAREN reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + DATE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + BOOLEAN reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + CHAR reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + STRING reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + REAL reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + INTEGER reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + NEW reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + $end reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + UNTIL reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ENDWHILE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ENDTYPE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ENDCLASS reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ELSE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ENDIF reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ENDPROCEDURE reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + SEMICOLON reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + NEXT reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) + ENDFUNCTION reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -14117,87 +14297,87 @@ state 223 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) ] - ! PLUS [ reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) ] - ! MOD [ reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) ] - ! DIV [ reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) ] - ! POINTER [ reduce using rule 125 (statement -> WRITEFILE expression COMMA expression .) ] + ! MINUS [ reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) ] + ! PLUS [ reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) ] + ! MOD [ reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) ] + ! DIV [ reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) ] + ! POINTER [ reduce using rule 126 (statement -> WRITEFILE expression COMMA expression .) ] -state 224 +state 226 - (127) statement -> SEEK expression COMMA expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (128) statement -> SEEK expression COMMA expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for MOD resolved as shift ! shift/reduce conflict for DIV resolved as shift ! shift/reduce conflict for PLUS resolved as shift ! shift/reduce conflict for MINUS resolved as shift ! shift/reduce conflict for POINTER resolved as shift - DELETE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - DECLARE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - PUBLIC reduce using rule 127 (statement -> SEEK expression COMMA expression .) - PRIVATE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - CONSTANT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - INPUT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - OUTPUT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - _OUTPUT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - IF reduce using rule 127 (statement -> SEEK expression COMMA expression .) - CASE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - FOR reduce using rule 127 (statement -> SEEK expression COMMA expression .) - REPEAT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - WHILE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - PROCEDURE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - CALL reduce using rule 127 (statement -> SEEK expression COMMA expression .) - FUNCTION reduce using rule 127 (statement -> SEEK expression COMMA expression .) - RETURN reduce using rule 127 (statement -> SEEK expression COMMA expression .) - OPENFILE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - READFILE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - WRITEFILE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - CLOSEFILE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - SEEK reduce using rule 127 (statement -> SEEK expression COMMA expression .) - TYPE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - PASS reduce using rule 127 (statement -> SEEK expression COMMA expression .) - IMPORT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - CLASS reduce using rule 127 (statement -> SEEK expression COMMA expression .) - LEFT_SQUARE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ID reduce using rule 127 (statement -> SEEK expression COMMA expression .) - NOT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - LEFT_PAREN reduce using rule 127 (statement -> SEEK expression COMMA expression .) - DATE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - BOOLEAN reduce using rule 127 (statement -> SEEK expression COMMA expression .) - CHAR reduce using rule 127 (statement -> SEEK expression COMMA expression .) - STRING reduce using rule 127 (statement -> SEEK expression COMMA expression .) - REAL reduce using rule 127 (statement -> SEEK expression COMMA expression .) - INTEGER reduce using rule 127 (statement -> SEEK expression COMMA expression .) - NEW reduce using rule 127 (statement -> SEEK expression COMMA expression .) - $end reduce using rule 127 (statement -> SEEK expression COMMA expression .) - UNTIL reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ENDWHILE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ENDTYPE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ENDCLASS reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ELSE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ENDIF reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ENDPROCEDURE reduce using rule 127 (statement -> SEEK expression COMMA expression .) - SEMICOLON reduce using rule 127 (statement -> SEEK expression COMMA expression .) - NEXT reduce using rule 127 (statement -> SEEK expression COMMA expression .) - ENDFUNCTION reduce using rule 127 (statement -> SEEK expression COMMA expression .) + DELETE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + DECLARE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + PUBLIC reduce using rule 128 (statement -> SEEK expression COMMA expression .) + PRIVATE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + CONSTANT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + INPUT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + OUTPUT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + _OUTPUT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + IF reduce using rule 128 (statement -> SEEK expression COMMA expression .) + CASE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + FOR reduce using rule 128 (statement -> SEEK expression COMMA expression .) + REPEAT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + WHILE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + PROCEDURE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + CALL reduce using rule 128 (statement -> SEEK expression COMMA expression .) + FUNCTION reduce using rule 128 (statement -> SEEK expression COMMA expression .) + RETURN reduce using rule 128 (statement -> SEEK expression COMMA expression .) + OPENFILE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + READFILE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + WRITEFILE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + CLOSEFILE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + SEEK reduce using rule 128 (statement -> SEEK expression COMMA expression .) + TYPE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + PASS reduce using rule 128 (statement -> SEEK expression COMMA expression .) + IMPORT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + CLASS reduce using rule 128 (statement -> SEEK expression COMMA expression .) + LEFT_SQUARE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ID reduce using rule 128 (statement -> SEEK expression COMMA expression .) + NOT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + LEFT_PAREN reduce using rule 128 (statement -> SEEK expression COMMA expression .) + DATE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + BOOLEAN reduce using rule 128 (statement -> SEEK expression COMMA expression .) + CHAR reduce using rule 128 (statement -> SEEK expression COMMA expression .) + STRING reduce using rule 128 (statement -> SEEK expression COMMA expression .) + REAL reduce using rule 128 (statement -> SEEK expression COMMA expression .) + INTEGER reduce using rule 128 (statement -> SEEK expression COMMA expression .) + NEW reduce using rule 128 (statement -> SEEK expression COMMA expression .) + $end reduce using rule 128 (statement -> SEEK expression COMMA expression .) + UNTIL reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ENDWHILE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ENDTYPE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ENDCLASS reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ELSE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ENDIF reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ENDPROCEDURE reduce using rule 128 (statement -> SEEK expression COMMA expression .) + SEMICOLON reduce using rule 128 (statement -> SEEK expression COMMA expression .) + NEXT reduce using rule 128 (statement -> SEEK expression COMMA expression .) + ENDFUNCTION reduce using rule 128 (statement -> SEEK expression COMMA expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -14216,158 +14396,158 @@ state 224 DOT shift and go to state 74 POINTER shift and go to state 75 - ! MINUS [ reduce using rule 127 (statement -> SEEK expression COMMA expression .) ] - ! PLUS [ reduce using rule 127 (statement -> SEEK expression COMMA expression .) ] - ! MOD [ reduce using rule 127 (statement -> SEEK expression COMMA expression .) ] - ! DIV [ reduce using rule 127 (statement -> SEEK expression COMMA expression .) ] - ! POINTER [ reduce using rule 127 (statement -> SEEK expression COMMA expression .) ] + ! MINUS [ reduce using rule 128 (statement -> SEEK expression COMMA expression .) ] + ! PLUS [ reduce using rule 128 (statement -> SEEK expression COMMA expression .) ] + ! MOD [ reduce using rule 128 (statement -> SEEK expression COMMA expression .) ] + ! DIV [ reduce using rule 128 (statement -> SEEK expression COMMA expression .) ] + ! POINTER [ reduce using rule 128 (statement -> SEEK expression COMMA expression .) ] -state 225 +state 227 - (128) statement -> TYPE ID statements ENDTYPE . - - DELETE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - DECLARE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - PUBLIC reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - PRIVATE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - CONSTANT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - INPUT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - OUTPUT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - _OUTPUT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - IF reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - CASE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - FOR reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - REPEAT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - WHILE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - PROCEDURE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - CALL reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - FUNCTION reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - RETURN reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - OPENFILE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - READFILE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - WRITEFILE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - CLOSEFILE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - SEEK reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - TYPE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - PASS reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - IMPORT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - CLASS reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - LEFT_SQUARE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ID reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - NOT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - MINUS reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - PLUS reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - LEFT_PAREN reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - DATE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - BOOLEAN reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - CHAR reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - STRING reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - REAL reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - INTEGER reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - MOD reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - DIV reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - POINTER reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - NEW reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - $end reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - UNTIL reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ENDWHILE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ENDTYPE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ENDCLASS reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ELSE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ENDIF reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ENDPROCEDURE reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - SEMICOLON reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - NEXT reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) - ENDFUNCTION reduce using rule 128 (statement -> TYPE ID statements ENDTYPE .) + (129) statement -> TYPE ID statements ENDTYPE . + + DELETE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + DECLARE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + PUBLIC reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + PRIVATE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + CONSTANT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + INPUT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + OUTPUT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + _OUTPUT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + IF reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + CASE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + FOR reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + REPEAT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + WHILE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + PROCEDURE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + CALL reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + FUNCTION reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + RETURN reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + OPENFILE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + READFILE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + WRITEFILE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + CLOSEFILE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + SEEK reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + TYPE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + PASS reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + IMPORT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + CLASS reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + LEFT_SQUARE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ID reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + NOT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + MINUS reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + PLUS reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + LEFT_PAREN reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + DATE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + BOOLEAN reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + CHAR reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + STRING reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + REAL reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + INTEGER reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + MOD reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + DIV reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + POINTER reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + NEW reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + $end reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + UNTIL reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ENDWHILE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ENDTYPE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ENDCLASS reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ELSE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ENDIF reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ENDPROCEDURE reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + SEMICOLON reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + NEXT reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) + ENDFUNCTION reduce using rule 129 (statement -> TYPE ID statements ENDTYPE .) -state 226 +state 228 - (130) statement -> TYPE ID EQUAL LEFT_PAREN . enumerate_items RIGHT_PAREN - (131) enumerate_items -> . enumerate_items COMMA ID - (132) enumerate_items -> . ID + (131) statement -> TYPE ID EQUAL LEFT_PAREN . enumerate_items RIGHT_PAREN + (132) enumerate_items -> . enumerate_items COMMA ID + (133) enumerate_items -> . ID - ID shift and go to state 274 + ID shift and go to state 276 - enumerate_items shift and go to state 275 + enumerate_items shift and go to state 277 -state 227 +state 229 - (135) statement -> TYPE ID EQUAL POINTER . ID + (136) statement -> TYPE ID EQUAL POINTER . ID - ID shift and go to state 276 + ID shift and go to state 278 -state 228 +state 230 - (142) statement -> TYPE ID EQUAL SET . OF ID + (143) statement -> TYPE ID EQUAL SET . OF ID - OF shift and go to state 277 + OF shift and go to state 279 -state 229 +state 231 - (138) statement -> CLASS ID statements ENDCLASS . - - DELETE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - DECLARE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - PUBLIC reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - PRIVATE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - CONSTANT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - INPUT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - OUTPUT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - _OUTPUT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - IF reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - CASE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - FOR reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - REPEAT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - WHILE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - PROCEDURE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - CALL reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - FUNCTION reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - RETURN reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - OPENFILE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - READFILE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - WRITEFILE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - CLOSEFILE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - SEEK reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - TYPE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - PASS reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - IMPORT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - CLASS reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - LEFT_SQUARE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ID reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - NOT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - MINUS reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - PLUS reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - LEFT_PAREN reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - DATE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - BOOLEAN reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - CHAR reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - STRING reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - REAL reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - INTEGER reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - MOD reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - DIV reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - POINTER reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - NEW reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - $end reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - UNTIL reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ENDWHILE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ENDTYPE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ENDCLASS reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ELSE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ENDIF reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ENDPROCEDURE reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - SEMICOLON reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - NEXT reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) - ENDFUNCTION reduce using rule 138 (statement -> CLASS ID statements ENDCLASS .) + (139) statement -> CLASS ID statements ENDCLASS . + + DELETE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + DECLARE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + PUBLIC reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + PRIVATE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + CONSTANT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + INPUT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + OUTPUT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + _OUTPUT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + IF reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + CASE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + FOR reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + REPEAT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + WHILE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + PROCEDURE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + CALL reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + FUNCTION reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + RETURN reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + OPENFILE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + READFILE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + WRITEFILE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + CLOSEFILE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + SEEK reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + TYPE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + PASS reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + IMPORT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + CLASS reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + LEFT_SQUARE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ID reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + NOT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + MINUS reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + PLUS reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + LEFT_PAREN reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + DATE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + BOOLEAN reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + CHAR reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + STRING reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + REAL reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + INTEGER reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + MOD reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + DIV reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + POINTER reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + NEW reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + $end reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + UNTIL reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ENDWHILE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ENDTYPE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ENDCLASS reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ELSE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ENDIF reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ENDPROCEDURE reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + SEMICOLON reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + NEXT reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) + ENDFUNCTION reduce using rule 139 (statement -> CLASS ID statements ENDCLASS .) -state 230 +state 232 - (139) statement -> CLASS ID INHERITS ID . statements ENDCLASS + (140) statement -> CLASS ID INHERITS ID . statements ENDCLASS (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -14375,110 +14555,111 @@ state 230 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -14523,195 +14704,195 @@ state 230 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 278 + statements shift and go to state 280 statement shift and go to state 2 expression shift and go to state 9 -state 231 +state 233 - (115) expression -> MOD LEFT_PAREN parameters RIGHT_PAREN . - - ASSIGN reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - OR reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - AND reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - EQUAL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - NOT_EQUAL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - LESS reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - GREATER reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - LESS_EQUAL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - GREATER_EQUAL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - MOD reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - DIV reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - MUL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - N_DIV reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - PLUS reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - MINUS reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CONNECT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - DOT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - POINTER reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - DELETE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - DECLARE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - PUBLIC reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - PRIVATE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CONSTANT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - INPUT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - OUTPUT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - _OUTPUT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - IF reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CASE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - FOR reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - REPEAT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - WHILE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - PROCEDURE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CALL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - FUNCTION reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - RETURN reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - OPENFILE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - READFILE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - WRITEFILE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CLOSEFILE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - SEEK reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - TYPE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - PASS reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - IMPORT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CLASS reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ID reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - NOT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_PAREN reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - DATE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - BOOLEAN reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - CHAR reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - STRING reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - REAL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - INTEGER reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - NEW reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - $end reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_SQUARE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - COMMA reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - UNTIL reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ENDWHILE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ENDTYPE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ENDCLASS reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ELSE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ENDIF reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - SEMICOLON reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - NEXT reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - ENDFUNCTION reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - THEN reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - DO reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_PAREN reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - OTHERWISE reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - TO reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - COLON reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) - STEP reduce using rule 115 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + (116) expression -> MOD LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 116 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) -state 232 +state 234 - (116) expression -> DIV LEFT_PAREN parameters RIGHT_PAREN . - - ASSIGN reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - OR reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - AND reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - EQUAL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - NOT_EQUAL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - LESS reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - GREATER reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - LESS_EQUAL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - GREATER_EQUAL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - MOD reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - DIV reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - MUL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - N_DIV reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - PLUS reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - MINUS reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CONNECT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - DOT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - POINTER reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - DELETE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - DECLARE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - PUBLIC reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - PRIVATE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CONSTANT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - INPUT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - OUTPUT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - _OUTPUT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - IF reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CASE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - FOR reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - REPEAT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - WHILE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - PROCEDURE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CALL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - FUNCTION reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - RETURN reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - OPENFILE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - READFILE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - WRITEFILE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CLOSEFILE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - SEEK reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - TYPE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - PASS reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - IMPORT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CLASS reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ID reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - NOT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_PAREN reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - DATE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - BOOLEAN reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - CHAR reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - STRING reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - REAL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - INTEGER reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - NEW reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - $end reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_SQUARE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - COMMA reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - UNTIL reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ENDWHILE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ENDTYPE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ENDCLASS reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ELSE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ENDIF reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - SEMICOLON reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - NEXT reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - ENDFUNCTION reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - THEN reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - DO reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_PAREN reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - OTHERWISE reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - TO reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - COLON reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) - STEP reduce using rule 116 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + (117) expression -> DIV LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 117 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) -state 233 +state 235 - (15) indexes -> indexes COMMA expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_SQUARE reduce using rule 15 (indexes -> indexes COMMA expression .) - COMMA reduce using rule 15 (indexes -> indexes COMMA expression .) + (16) indexes -> indexes COMMA expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 16 (indexes -> indexes COMMA expression .) + COMMA reduce using rule 16 (indexes -> indexes COMMA expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -14731,29 +14912,29 @@ state 233 POINTER shift and go to state 75 -state 234 +state 236 - (80) parameters -> parameters COMMA expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_PAREN reduce using rule 80 (parameters -> parameters COMMA expression .) - COMMA reduce using rule 80 (parameters -> parameters COMMA expression .) + (81) parameters -> parameters COMMA expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_PAREN reduce using rule 81 (parameters -> parameters COMMA expression .) + COMMA reduce using rule 81 (parameters -> parameters COMMA expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -14773,50 +14954,50 @@ state 234 POINTER shift and go to state 75 -state 235 +state 237 - (8) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID - (11) dimensions -> . dimensions COMMA dimension - (12) dimensions -> . dimension - (13) dimension -> . expression COLON expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID + (12) dimensions -> . dimensions COMMA dimension + (13) dimensions -> . dimension + (14) dimension -> . expression COLON expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -14835,54 +15016,54 @@ state 235 POINTER shift and go to state 31 NEW shift and go to state 21 - dimensions shift and go to state 279 - dimension shift and go to state 280 - expression shift and go to state 281 + dimensions shift and go to state 281 + dimension shift and go to state 282 + expression shift and go to state 283 -state 236 +state 238 - (9) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID - (11) dimensions -> . dimensions COMMA dimension - (12) dimensions -> . dimension - (13) dimension -> . expression COLON expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID + (12) dimensions -> . dimensions COMMA dimension + (13) dimensions -> . dimension + (14) dimension -> . expression COLON expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -14901,22 +15082,22 @@ state 236 POINTER shift and go to state 31 NEW shift and go to state 21 - dimensions shift and go to state 282 - dimension shift and go to state 280 - expression shift and go to state 281 + dimensions shift and go to state 284 + dimension shift and go to state 282 + expression shift and go to state 283 -state 237 +state 239 - (86) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 283 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 285 + COMMA shift and go to state 265 -state 238 +state 240 - (88) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (89) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -14924,110 +15105,111 @@ state 238 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15072,22 +15254,22 @@ state 238 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 284 + statements shift and go to state 286 statement shift and go to state 2 expression shift and go to state 9 -state 239 +state 241 - (87) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 285 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 287 + COMMA shift and go to state 265 -state 240 +state 242 - (89) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (90) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -15095,110 +15277,111 @@ state 240 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15243,74 +15426,74 @@ state 240 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 286 + statements shift and go to state 288 statement shift and go to state 2 expression shift and go to state 9 -state 241 +state 243 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 287 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 289 + COMMA shift and go to state 265 -state 242 +state 244 - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION + (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 288 + RETURNS shift and go to state 290 -state 243 +state 245 - (10) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID - (11) dimensions -> . dimensions COMMA dimension - (12) dimensions -> . dimension - (13) dimension -> . expression COLON expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID + (12) dimensions -> . dimensions COMMA dimension + (13) dimensions -> . dimension + (14) dimension -> . expression COLON expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -15329,22 +15512,22 @@ state 243 POINTER shift and go to state 31 NEW shift and go to state 21 - dimensions shift and go to state 289 - dimension shift and go to state 280 - expression shift and go to state 281 + dimensions shift and go to state 291 + dimension shift and go to state 282 + expression shift and go to state 283 -state 244 +state 246 - (90) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 290 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 292 + COMMA shift and go to state 265 -state 245 +state 247 - (92) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (93) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -15352,110 +15535,111 @@ state 245 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15500,22 +15684,22 @@ state 245 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 291 + statements shift and go to state 293 statement shift and go to state 2 expression shift and go to state 9 -state 246 +state 248 - (91) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 292 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 294 + COMMA shift and go to state 265 -state 247 +state 249 - (93) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (94) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -15523,110 +15707,111 @@ state 247 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15671,33 +15856,33 @@ state 247 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 293 + statements shift and go to state 295 statement shift and go to state 2 expression shift and go to state 9 -state 248 +state 250 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (69) declare_parameters -> declare_parameters . COMMA declare_parameter + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (70) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 294 - COMMA shift and go to state 263 + RIGHT_PAREN shift and go to state 296 + COMMA shift and go to state 265 -state 249 +state 251 - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION + (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 295 + RETURNS shift and go to state 297 -state 250 +state 252 - (26) statement -> IF expression THEN statements ELSE . statements ENDIF + (27) statement -> IF expression THEN statements ELSE . statements ENDIF (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -15705,110 +15890,111 @@ state 250 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15854,109 +16040,109 @@ state 250 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 296 + statements shift and go to state 298 statement shift and go to state 2 -state 251 +state 253 - (27) statement -> IF expression THEN statements ENDIF . - - DELETE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - DECLARE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - PUBLIC reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - PRIVATE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - CONSTANT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - INPUT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - OUTPUT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - _OUTPUT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - IF reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - CASE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - FOR reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - REPEAT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - WHILE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - PROCEDURE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - CALL reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - FUNCTION reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - RETURN reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - OPENFILE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - READFILE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - WRITEFILE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - CLOSEFILE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - SEEK reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - TYPE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - PASS reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - IMPORT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - CLASS reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - LEFT_SQUARE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ID reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - NOT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - MINUS reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - PLUS reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - LEFT_PAREN reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - DATE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - BOOLEAN reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - CHAR reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - STRING reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - REAL reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - INTEGER reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - MOD reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - DIV reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - POINTER reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - NEW reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - $end reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - UNTIL reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ENDWHILE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ENDTYPE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ENDCLASS reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ELSE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ENDIF reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ENDPROCEDURE reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - SEMICOLON reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - NEXT reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) - ENDFUNCTION reduce using rule 27 (statement -> IF expression THEN statements ENDIF .) + (28) statement -> IF expression THEN statements ENDIF . + + DELETE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + DECLARE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + PUBLIC reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + PRIVATE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + CONSTANT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + INPUT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + OUTPUT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + _OUTPUT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + IF reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + CASE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + FOR reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + REPEAT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + WHILE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + PROCEDURE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + CALL reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + FUNCTION reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + RETURN reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + OPENFILE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + READFILE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + WRITEFILE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + CLOSEFILE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + SEEK reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + TYPE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + PASS reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + IMPORT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + CLASS reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + LEFT_SQUARE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ID reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + NOT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + MINUS reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + PLUS reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + LEFT_PAREN reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + DATE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + BOOLEAN reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + CHAR reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + STRING reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + REAL reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + INTEGER reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + MOD reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + DIV reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + POINTER reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + NEW reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + $end reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + UNTIL reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ENDWHILE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ENDTYPE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ENDCLASS reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ELSE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ENDIF reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ENDPROCEDURE reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + SEMICOLON reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + NEXT reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) + ENDFUNCTION reduce using rule 28 (statement -> IF expression THEN statements ENDIF .) -state 252 +state 254 - (33) case_expression -> expression TO . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (34) case_expression -> expression TO . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -15975,94 +16161,94 @@ state 252 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 297 + expression shift and go to state 299 -state 253 +state 255 - (28) statement -> CASE OF expression cases ENDCASE . - - DELETE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - DECLARE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - PUBLIC reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - PRIVATE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - CONSTANT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - INPUT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - OUTPUT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - _OUTPUT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - IF reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - CASE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - FOR reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - REPEAT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - WHILE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - PROCEDURE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - CALL reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - FUNCTION reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - RETURN reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - OPENFILE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - READFILE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - WRITEFILE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - CLOSEFILE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - SEEK reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - TYPE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - PASS reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - IMPORT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - CLASS reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - LEFT_SQUARE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ID reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - NOT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - MINUS reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - PLUS reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - LEFT_PAREN reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - DATE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - BOOLEAN reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - CHAR reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - STRING reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - REAL reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - INTEGER reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - MOD reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - DIV reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - POINTER reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - NEW reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - $end reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - UNTIL reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ENDWHILE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ENDTYPE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ENDCLASS reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ELSE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ENDIF reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ENDPROCEDURE reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - SEMICOLON reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - NEXT reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) - ENDFUNCTION reduce using rule 28 (statement -> CASE OF expression cases ENDCASE .) + (29) statement -> CASE OF expression cases ENDCASE . + + DELETE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + DECLARE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + PUBLIC reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + PRIVATE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + CONSTANT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + INPUT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + OUTPUT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + _OUTPUT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + IF reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + CASE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + FOR reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + REPEAT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + WHILE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + PROCEDURE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + CALL reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + FUNCTION reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + RETURN reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + OPENFILE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + READFILE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + WRITEFILE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + CLOSEFILE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + SEEK reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + TYPE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + PASS reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + IMPORT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + CLASS reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + LEFT_SQUARE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ID reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + NOT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + MINUS reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + PLUS reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + LEFT_PAREN reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + DATE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + BOOLEAN reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + CHAR reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + STRING reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + REAL reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + INTEGER reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + MOD reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + DIV reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + POINTER reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + NEW reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + $end reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + UNTIL reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ENDWHILE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ENDTYPE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ENDCLASS reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ELSE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ENDIF reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ENDPROCEDURE reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + SEMICOLON reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + NEXT reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) + ENDFUNCTION reduce using rule 29 (statement -> CASE OF expression cases ENDCASE .) -state 254 +state 256 - (29) cases -> cases case . - - ENDCASE reduce using rule 29 (cases -> cases case .) - OTHERWISE reduce using rule 29 (cases -> cases case .) - LEFT_SQUARE reduce using rule 29 (cases -> cases case .) - ID reduce using rule 29 (cases -> cases case .) - NOT reduce using rule 29 (cases -> cases case .) - MINUS reduce using rule 29 (cases -> cases case .) - PLUS reduce using rule 29 (cases -> cases case .) - LEFT_PAREN reduce using rule 29 (cases -> cases case .) - DATE reduce using rule 29 (cases -> cases case .) - BOOLEAN reduce using rule 29 (cases -> cases case .) - CHAR reduce using rule 29 (cases -> cases case .) - STRING reduce using rule 29 (cases -> cases case .) - REAL reduce using rule 29 (cases -> cases case .) - INTEGER reduce using rule 29 (cases -> cases case .) - MOD reduce using rule 29 (cases -> cases case .) - DIV reduce using rule 29 (cases -> cases case .) - POINTER reduce using rule 29 (cases -> cases case .) - NEW reduce using rule 29 (cases -> cases case .) + (30) cases -> cases case . + + ENDCASE reduce using rule 30 (cases -> cases case .) + OTHERWISE reduce using rule 30 (cases -> cases case .) + LEFT_SQUARE reduce using rule 30 (cases -> cases case .) + ID reduce using rule 30 (cases -> cases case .) + NOT reduce using rule 30 (cases -> cases case .) + MINUS reduce using rule 30 (cases -> cases case .) + PLUS reduce using rule 30 (cases -> cases case .) + LEFT_PAREN reduce using rule 30 (cases -> cases case .) + DATE reduce using rule 30 (cases -> cases case .) + BOOLEAN reduce using rule 30 (cases -> cases case .) + CHAR reduce using rule 30 (cases -> cases case .) + STRING reduce using rule 30 (cases -> cases case .) + REAL reduce using rule 30 (cases -> cases case .) + INTEGER reduce using rule 30 (cases -> cases case .) + MOD reduce using rule 30 (cases -> cases case .) + DIV reduce using rule 30 (cases -> cases case .) + POINTER reduce using rule 30 (cases -> cases case .) + NEW reduce using rule 30 (cases -> cases case .) -state 255 +state 257 - (31) case -> case_expression COLON . statements SEMICOLON + (32) case -> case_expression COLON . statements SEMICOLON (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -16070,110 +16256,111 @@ state 255 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16218,37 +16405,37 @@ state 255 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 298 + statements shift and go to state 300 statement shift and go to state 2 expression shift and go to state 9 -state 256 +state 258 - (32) case -> otherwise_statement SEMICOLON . - - ENDCASE reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - OTHERWISE reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - LEFT_SQUARE reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - ID reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - NOT reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - MINUS reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - PLUS reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - LEFT_PAREN reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - DATE reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - BOOLEAN reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - CHAR reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - STRING reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - REAL reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - INTEGER reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - MOD reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - DIV reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - POINTER reduce using rule 32 (case -> otherwise_statement SEMICOLON .) - NEW reduce using rule 32 (case -> otherwise_statement SEMICOLON .) + (33) case -> otherwise_statement SEMICOLON . + + ENDCASE reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + OTHERWISE reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + LEFT_SQUARE reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + ID reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + NOT reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + MINUS reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + PLUS reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + LEFT_PAREN reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + DATE reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + BOOLEAN reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + CHAR reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + STRING reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + REAL reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + INTEGER reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + MOD reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + DIV reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + POINTER reduce using rule 33 (case -> otherwise_statement SEMICOLON .) + NEW reduce using rule 33 (case -> otherwise_statement SEMICOLON .) -state 257 +state 259 - (35) otherwise_statement -> OTHERWISE COLON . statements + (36) otherwise_statement -> OTHERWISE COLON . statements (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -16256,110 +16443,111 @@ state 257 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16404,52 +16592,52 @@ state 257 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 299 + statements shift and go to state 301 statement shift and go to state 2 expression shift and go to state 9 -state 258 +state 260 - (36) statement -> FOR ID ASSIGN expression TO . expression STEP expression statements NEXT ID - (37) statement -> FOR ID ASSIGN expression TO . expression statements NEXT ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (37) statement -> FOR ID ASSIGN expression TO . expression STEP expression statements NEXT ID + (38) statement -> FOR ID ASSIGN expression TO . expression statements NEXT ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -16468,92 +16656,92 @@ state 258 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 300 + expression shift and go to state 302 -state 259 +state 261 - (39) statement -> WHILE expression DO statements ENDWHILE . - - DELETE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - DECLARE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - PUBLIC reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - PRIVATE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - CONSTANT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - INPUT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - OUTPUT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - _OUTPUT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - IF reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - CASE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - FOR reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - REPEAT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - WHILE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - PROCEDURE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - CALL reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - FUNCTION reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - RETURN reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - OPENFILE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - READFILE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - WRITEFILE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - CLOSEFILE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - SEEK reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - TYPE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - PASS reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - IMPORT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - CLASS reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - LEFT_SQUARE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ID reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - NOT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - MINUS reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - PLUS reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - LEFT_PAREN reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - DATE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - BOOLEAN reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - CHAR reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - STRING reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - REAL reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - INTEGER reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - MOD reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - DIV reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - POINTER reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - NEW reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - $end reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - UNTIL reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ENDWHILE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ENDTYPE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ENDCLASS reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ELSE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ENDIF reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ENDPROCEDURE reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - SEMICOLON reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - NEXT reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) - ENDFUNCTION reduce using rule 39 (statement -> WHILE expression DO statements ENDWHILE .) + (40) statement -> WHILE expression DO statements ENDWHILE . + + DELETE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + DECLARE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + PUBLIC reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + PRIVATE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + CONSTANT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + INPUT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + OUTPUT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + _OUTPUT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + IF reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + CASE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + FOR reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + REPEAT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + WHILE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + PROCEDURE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + CALL reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + FUNCTION reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + RETURN reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + OPENFILE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + READFILE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + WRITEFILE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + CLOSEFILE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + SEEK reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + TYPE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + PASS reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + IMPORT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + CLASS reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + LEFT_SQUARE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ID reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + NOT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + MINUS reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + PLUS reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + LEFT_PAREN reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + DATE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + BOOLEAN reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + CHAR reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + STRING reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + REAL reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + INTEGER reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + MOD reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + DIV reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + POINTER reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + NEW reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + $end reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + UNTIL reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ENDWHILE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ENDTYPE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ENDCLASS reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ELSE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ENDIF reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ENDPROCEDURE reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + SEMICOLON reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + NEXT reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) + ENDFUNCTION reduce using rule 40 (statement -> WHILE expression DO statements ENDWHILE .) -state 260 +state 262 - (62) expression -> LEFT_PAREN expression . RIGHT_PAREN - (81) parameters -> expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (63) expression -> LEFT_PAREN expression . RIGHT_PAREN + (82) parameters -> expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER ! shift/reduce conflict for RIGHT_PAREN resolved as shift - RIGHT_PAREN shift and go to state 157 - COMMA reduce using rule 81 (parameters -> expression .) + RIGHT_PAREN shift and go to state 158 + COMMA reduce using rule 82 (parameters -> expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -16572,22 +16760,22 @@ state 260 DOT shift and go to state 74 POINTER shift and go to state 75 - ! RIGHT_PAREN [ reduce using rule 81 (parameters -> expression .) ] + ! RIGHT_PAREN [ reduce using rule 82 (parameters -> expression .) ] -state 261 +state 263 - (71) declare_parameter -> ID COLON . ID - (72) declare_parameter -> ID COLON . ARRAY - (77) declare_parameter -> ID COLON . ARRAY OF ID + (72) declare_parameter -> ID COLON . ID + (73) declare_parameter -> ID COLON . ARRAY + (78) declare_parameter -> ID COLON . ARRAY OF ID - ID shift and go to state 301 - ARRAY shift and go to state 302 + ID shift and go to state 303 + ARRAY shift and go to state 304 -state 262 +state 264 - (82) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -16595,110 +16783,111 @@ state 262 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16743,144 +16932,145 @@ state 262 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 303 + statements shift and go to state 305 statement shift and go to state 2 expression shift and go to state 9 -state 263 +state 265 - (69) declare_parameters -> declare_parameters COMMA . declare_parameter - (71) declare_parameter -> . ID COLON ID - (72) declare_parameter -> . ID COLON ARRAY - (73) declare_parameter -> . BYREF ID COLON ID - (74) declare_parameter -> . BYREF ID COLON ARRAY - (75) declare_parameter -> . BYVAL ID COLON ID - (76) declare_parameter -> . BYVAL ID COLON ARRAY - (77) declare_parameter -> . ID COLON ARRAY OF ID - (78) declare_parameter -> . BYREF ID COLON ARRAY OF ID - (79) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + (70) declare_parameters -> declare_parameters COMMA . declare_parameter + (72) declare_parameter -> . ID COLON ID + (73) declare_parameter -> . ID COLON ARRAY + (74) declare_parameter -> . BYREF ID COLON ID + (75) declare_parameter -> . BYREF ID COLON ARRAY + (76) declare_parameter -> . BYVAL ID COLON ID + (77) declare_parameter -> . BYVAL ID COLON ARRAY + (78) declare_parameter -> . ID COLON ARRAY OF ID + (79) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (80) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - ID shift and go to state 205 - BYREF shift and go to state 209 - BYVAL shift and go to state 210 + ID shift and go to state 207 + BYREF shift and go to state 211 + BYVAL shift and go to state 212 - declare_parameter shift and go to state 304 + declare_parameter shift and go to state 306 -state 264 +state 266 - (84) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (85) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 305 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 307 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -16927,27 +17117,27 @@ state 264 statement shift and go to state 46 expression shift and go to state 9 -state 265 +state 267 - (73) declare_parameter -> BYREF ID . COLON ID - (74) declare_parameter -> BYREF ID . COLON ARRAY - (78) declare_parameter -> BYREF ID . COLON ARRAY OF ID + (74) declare_parameter -> BYREF ID . COLON ID + (75) declare_parameter -> BYREF ID . COLON ARRAY + (79) declare_parameter -> BYREF ID . COLON ARRAY OF ID - COLON shift and go to state 306 + COLON shift and go to state 308 -state 266 +state 268 - (75) declare_parameter -> BYVAL ID . COLON ID - (76) declare_parameter -> BYVAL ID . COLON ARRAY - (79) declare_parameter -> BYVAL ID . COLON ARRAY OF ID + (76) declare_parameter -> BYVAL ID . COLON ID + (77) declare_parameter -> BYVAL ID . COLON ARRAY + (80) declare_parameter -> BYVAL ID . COLON ARRAY OF ID - COLON shift and go to state 307 + COLON shift and go to state 309 -state 267 +state 269 - (83) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -16955,110 +17145,111 @@ state 267 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -17103,125 +17294,126 @@ state 267 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 308 + statements shift and go to state 310 statement shift and go to state 2 expression shift and go to state 9 -state 268 +state 270 - (85) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (86) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 309 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 311 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -17268,208 +17460,208 @@ state 268 statement shift and go to state 46 expression shift and go to state 9 -state 269 +state 271 - (141) expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN . - - ASSIGN reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - OR reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - AND reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - EQUAL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - NOT_EQUAL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - LESS reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - GREATER reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - LESS_EQUAL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - GREATER_EQUAL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - MOD reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - DIV reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - MUL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - N_DIV reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - PLUS reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - MINUS reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CONNECT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - DOT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - POINTER reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - DELETE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - DECLARE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - PUBLIC reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - PRIVATE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CONSTANT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - INPUT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - OUTPUT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - _OUTPUT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - IF reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CASE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - FOR reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - REPEAT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - WHILE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - PROCEDURE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CALL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - FUNCTION reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - RETURN reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - OPENFILE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - READFILE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - WRITEFILE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CLOSEFILE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - SEEK reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - TYPE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - PASS reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - IMPORT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CLASS reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ID reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - NOT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_PAREN reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - DATE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - BOOLEAN reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - CHAR reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - STRING reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - REAL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - INTEGER reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - NEW reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - $end reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_SQUARE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - COMMA reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - UNTIL reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDWHILE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDTYPE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDCLASS reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ELSE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDIF reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - SEMICOLON reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - NEXT reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDFUNCTION reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - THEN reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - DO reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - RIGHT_PAREN reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - OTHERWISE reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - TO reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - COLON reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) - STEP reduce using rule 141 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + (142) expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 142 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) -state 270 +state 272 - (94) statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN . - - DELETE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - DECLARE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - PUBLIC reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - PRIVATE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - CONSTANT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - INPUT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - OUTPUT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - _OUTPUT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - IF reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - CASE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - FOR reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - REPEAT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - WHILE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - PROCEDURE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - CALL reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - FUNCTION reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - RETURN reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - OPENFILE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - READFILE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - WRITEFILE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - CLOSEFILE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - SEEK reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - TYPE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - PASS reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - IMPORT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - CLASS reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ID reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - NOT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - MINUS reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - PLUS reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - LEFT_PAREN reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - DATE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - BOOLEAN reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - CHAR reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - STRING reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - REAL reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - INTEGER reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - MOD reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - DIV reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - POINTER reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - NEW reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - $end reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - UNTIL reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDWHILE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDTYPE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDCLASS reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ELSE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDIF reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - SEMICOLON reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - NEXT reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) - ENDFUNCTION reduce using rule 94 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + (95) statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN . + + DELETE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 95 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) -state 271 +state 273 - (96) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION + (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 310 + RETURNS shift and go to state 312 -state 272 +state 274 - (98) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION + (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (100) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 311 - ARRAY shift and go to state 312 + ID shift and go to state 313 + ARRAY shift and go to state 314 -state 273 +state 275 - (123) statement -> READFILE expression COMMA ID LEFT_SQUARE . indexes RIGHT_SQUARE - (15) indexes -> . indexes COMMA expression - (16) indexes -> . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (124) statement -> READFILE expression COMMA ID LEFT_SQUARE . indexes RIGHT_SQUARE + (16) indexes -> . indexes COMMA expression + (17) indexes -> . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -17489,206 +17681,207 @@ state 273 NEW shift and go to state 21 expression shift and go to state 110 - indexes shift and go to state 313 + indexes shift and go to state 315 -state 274 +state 276 - (132) enumerate_items -> ID . + (133) enumerate_items -> ID . - RIGHT_PAREN reduce using rule 132 (enumerate_items -> ID .) - COMMA reduce using rule 132 (enumerate_items -> ID .) + RIGHT_PAREN reduce using rule 133 (enumerate_items -> ID .) + COMMA reduce using rule 133 (enumerate_items -> ID .) -state 275 +state 277 - (130) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items . RIGHT_PAREN - (131) enumerate_items -> enumerate_items . COMMA ID + (131) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items . RIGHT_PAREN + (132) enumerate_items -> enumerate_items . COMMA ID - RIGHT_PAREN shift and go to state 314 - COMMA shift and go to state 315 + RIGHT_PAREN shift and go to state 316 + COMMA shift and go to state 317 -state 276 +state 278 - (135) statement -> TYPE ID EQUAL POINTER ID . - - DELETE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - DECLARE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - PUBLIC reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - PRIVATE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - CONSTANT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - INPUT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - OUTPUT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - _OUTPUT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - IF reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - CASE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - FOR reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - REPEAT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - WHILE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - PROCEDURE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - CALL reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - FUNCTION reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - RETURN reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - OPENFILE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - READFILE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - WRITEFILE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - CLOSEFILE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - SEEK reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - TYPE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - PASS reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - IMPORT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - CLASS reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - LEFT_SQUARE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ID reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - NOT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - MINUS reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - PLUS reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - LEFT_PAREN reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - DATE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - BOOLEAN reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - CHAR reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - STRING reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - REAL reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - INTEGER reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - MOD reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - DIV reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - POINTER reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - NEW reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - $end reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - UNTIL reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ENDWHILE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ENDTYPE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ENDCLASS reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ELSE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ENDIF reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ENDPROCEDURE reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - SEMICOLON reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - NEXT reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) - ENDFUNCTION reduce using rule 135 (statement -> TYPE ID EQUAL POINTER ID .) + (136) statement -> TYPE ID EQUAL POINTER ID . + + DELETE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + DECLARE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + PUBLIC reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + PRIVATE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + CONSTANT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + INPUT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + OUTPUT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + _OUTPUT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + IF reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + CASE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + FOR reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + REPEAT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + WHILE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + PROCEDURE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + CALL reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + FUNCTION reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + RETURN reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + OPENFILE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + READFILE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + WRITEFILE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + CLOSEFILE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + SEEK reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + TYPE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + PASS reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + IMPORT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + CLASS reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + LEFT_SQUARE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ID reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + NOT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + MINUS reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + PLUS reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + LEFT_PAREN reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + DATE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + BOOLEAN reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + CHAR reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + STRING reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + REAL reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + INTEGER reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + MOD reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + DIV reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + POINTER reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + NEW reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + $end reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + UNTIL reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ENDWHILE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ENDTYPE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ENDCLASS reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ELSE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ENDIF reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ENDPROCEDURE reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + SEMICOLON reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + NEXT reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) + ENDFUNCTION reduce using rule 136 (statement -> TYPE ID EQUAL POINTER ID .) -state 277 +state 279 - (142) statement -> TYPE ID EQUAL SET OF . ID + (143) statement -> TYPE ID EQUAL SET OF . ID - ID shift and go to state 316 + ID shift and go to state 318 -state 278 +state 280 - (139) statement -> CLASS ID INHERITS ID statements . ENDCLASS + (140) statement -> CLASS ID INHERITS ID statements . ENDCLASS (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDCLASS shift and go to state 317 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDCLASS shift and go to state 319 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -17735,45 +17928,45 @@ state 278 statement shift and go to state 46 expression shift and go to state 9 -state 279 +state 281 - (8) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID - (11) dimensions -> dimensions . COMMA dimension + (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID + (12) dimensions -> dimensions . COMMA dimension - RIGHT_SQUARE shift and go to state 318 - COMMA shift and go to state 319 + RIGHT_SQUARE shift and go to state 320 + COMMA shift and go to state 321 -state 280 +state 282 - (12) dimensions -> dimension . + (13) dimensions -> dimension . - RIGHT_SQUARE reduce using rule 12 (dimensions -> dimension .) - COMMA reduce using rule 12 (dimensions -> dimension .) + RIGHT_SQUARE reduce using rule 13 (dimensions -> dimension .) + COMMA reduce using rule 13 (dimensions -> dimension .) -state 281 +state 283 - (13) dimension -> expression . COLON expression - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - COLON shift and go to state 320 + (14) dimension -> expression . COLON expression + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + COLON shift and go to state 322 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -17793,18 +17986,18 @@ state 281 POINTER shift and go to state 75 -state 282 +state 284 - (9) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID - (11) dimensions -> dimensions . COMMA dimension + (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID + (12) dimensions -> dimensions . COMMA dimension - RIGHT_SQUARE shift and go to state 321 - COMMA shift and go to state 319 + RIGHT_SQUARE shift and go to state 323 + COMMA shift and go to state 321 -state 283 +state 285 - (86) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -17812,110 +18005,111 @@ state 283 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -17960,125 +18154,126 @@ state 283 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 322 + statements shift and go to state 324 statement shift and go to state 2 expression shift and go to state 9 -state 284 +state 286 - (88) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (89) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 323 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 325 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -18125,9 +18320,9 @@ state 284 statement shift and go to state 46 expression shift and go to state 9 -state 285 +state 287 - (87) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -18135,110 +18330,111 @@ state 285 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -18283,125 +18479,126 @@ state 285 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 324 + statements shift and go to state 326 statement shift and go to state 2 expression shift and go to state 9 -state 286 +state 288 - (89) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (90) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 325 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 327 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -18448,37 +18645,37 @@ state 286 statement shift and go to state 46 expression shift and go to state 9 -state 287 +state 289 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 326 + RETURNS shift and go to state 328 -state 288 +state 290 - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION + (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 327 - ARRAY shift and go to state 328 + ID shift and go to state 329 + ARRAY shift and go to state 330 -state 289 +state 291 - (10) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID - (11) dimensions -> dimensions . COMMA dimension + (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID + (12) dimensions -> dimensions . COMMA dimension - RIGHT_SQUARE shift and go to state 329 - COMMA shift and go to state 319 + RIGHT_SQUARE shift and go to state 331 + COMMA shift and go to state 321 -state 290 +state 292 - (90) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -18486,110 +18683,111 @@ state 290 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -18634,125 +18832,126 @@ state 290 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 330 + statements shift and go to state 332 statement shift and go to state 2 expression shift and go to state 9 -state 291 +state 293 - (92) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (93) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 331 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 333 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -18799,9 +18998,9 @@ state 291 statement shift and go to state 46 expression shift and go to state 9 -state 292 +state 294 - (91) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -18809,110 +19008,111 @@ state 292 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -18957,125 +19157,126 @@ state 292 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 332 + statements shift and go to state 334 statement shift and go to state 2 expression shift and go to state 9 -state 293 +state 295 - (93) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (94) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 333 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 335 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19122,140 +19323,141 @@ state 293 statement shift and go to state 46 expression shift and go to state 9 -state 294 +state 296 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 334 + RETURNS shift and go to state 336 -state 295 +state 297 - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION + (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 335 - ARRAY shift and go to state 336 + ID shift and go to state 337 + ARRAY shift and go to state 338 -state 296 +state 298 - (26) statement -> IF expression THEN statements ELSE statements . ENDIF + (27) statement -> IF expression THEN statements ELSE statements . ENDIF (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDIF shift and go to state 337 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDIF shift and go to state 339 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19302,28 +19504,28 @@ state 296 expression shift and go to state 9 statement shift and go to state 46 -state 297 +state 299 - (33) case_expression -> expression TO expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - COLON reduce using rule 33 (case_expression -> expression TO expression .) + (34) case_expression -> expression TO expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + COLON reduce using rule 34 (case_expression -> expression TO expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -19343,121 +19545,122 @@ state 297 POINTER shift and go to state 75 -state 298 +state 300 - (31) case -> case_expression COLON statements . SEMICOLON + (32) case -> case_expression COLON statements . SEMICOLON (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - SEMICOLON shift and go to state 338 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + SEMICOLON shift and go to state 340 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19504,121 +19707,122 @@ state 298 statement shift and go to state 46 expression shift and go to state 9 -state 299 +state 301 - (35) otherwise_statement -> OTHERWISE COLON statements . + (36) otherwise_statement -> OTHERWISE COLON statements . (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - SEMICOLON reduce using rule 35 (otherwise_statement -> OTHERWISE COLON statements .) + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + SEMICOLON reduce using rule 36 (otherwise_statement -> OTHERWISE COLON statements .) DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19665,27 +19869,27 @@ state 299 statement shift and go to state 46 expression shift and go to state 9 -state 300 +state 302 - (36) statement -> FOR ID ASSIGN expression TO expression . STEP expression statements NEXT ID - (37) statement -> FOR ID ASSIGN expression TO expression . statements NEXT ID - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (37) statement -> FOR ID ASSIGN expression TO expression . STEP expression statements NEXT ID + (38) statement -> FOR ID ASSIGN expression TO expression . statements NEXT ID + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -19693,112 +19897,113 @@ state 300 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - STEP shift and go to state 339 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + STEP shift and go to state 341 OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -19807,15 +20012,15 @@ state 300 GREATER shift and go to state 64 LESS_EQUAL shift and go to state 65 GREATER_EQUAL shift and go to state 66 - MOD shift and go to state 150 - DIV shift and go to state 151 + MOD shift and go to state 151 + DIV shift and go to state 152 MUL shift and go to state 69 N_DIV shift and go to state 70 - PLUS shift and go to state 152 - MINUS shift and go to state 153 + PLUS shift and go to state 153 + MINUS shift and go to state 154 CONNECT shift and go to state 73 DOT shift and go to state 74 - POINTER shift and go to state 154 + POINTER shift and go to state 155 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19855,142 +20060,143 @@ state 300 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 340 + statements shift and go to state 342 statement shift and go to state 2 -state 301 +state 303 - (71) declare_parameter -> ID COLON ID . + (72) declare_parameter -> ID COLON ID . - RIGHT_PAREN reduce using rule 71 (declare_parameter -> ID COLON ID .) - COMMA reduce using rule 71 (declare_parameter -> ID COLON ID .) + RIGHT_PAREN reduce using rule 72 (declare_parameter -> ID COLON ID .) + COMMA reduce using rule 72 (declare_parameter -> ID COLON ID .) -state 302 +state 304 - (72) declare_parameter -> ID COLON ARRAY . - (77) declare_parameter -> ID COLON ARRAY . OF ID + (73) declare_parameter -> ID COLON ARRAY . + (78) declare_parameter -> ID COLON ARRAY . OF ID - RIGHT_PAREN reduce using rule 72 (declare_parameter -> ID COLON ARRAY .) - COMMA reduce using rule 72 (declare_parameter -> ID COLON ARRAY .) - OF shift and go to state 341 + RIGHT_PAREN reduce using rule 73 (declare_parameter -> ID COLON ARRAY .) + COMMA reduce using rule 73 (declare_parameter -> ID COLON ARRAY .) + OF shift and go to state 343 -state 303 +state 305 - (82) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 342 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 344 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20037,208 +20243,209 @@ state 303 statement shift and go to state 46 expression shift and go to state 9 -state 304 +state 306 - (69) declare_parameters -> declare_parameters COMMA declare_parameter . + (70) declare_parameters -> declare_parameters COMMA declare_parameter . - RIGHT_PAREN reduce using rule 69 (declare_parameters -> declare_parameters COMMA declare_parameter .) - COMMA reduce using rule 69 (declare_parameters -> declare_parameters COMMA declare_parameter .) + RIGHT_PAREN reduce using rule 70 (declare_parameters -> declare_parameters COMMA declare_parameter .) + COMMA reduce using rule 70 (declare_parameters -> declare_parameters COMMA declare_parameter .) -state 305 +state 307 - (84) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 84 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + (85) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 85 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 306 +state 308 - (73) declare_parameter -> BYREF ID COLON . ID - (74) declare_parameter -> BYREF ID COLON . ARRAY - (78) declare_parameter -> BYREF ID COLON . ARRAY OF ID + (74) declare_parameter -> BYREF ID COLON . ID + (75) declare_parameter -> BYREF ID COLON . ARRAY + (79) declare_parameter -> BYREF ID COLON . ARRAY OF ID - ID shift and go to state 343 - ARRAY shift and go to state 344 + ID shift and go to state 345 + ARRAY shift and go to state 346 -state 307 +state 309 - (75) declare_parameter -> BYVAL ID COLON . ID - (76) declare_parameter -> BYVAL ID COLON . ARRAY - (79) declare_parameter -> BYVAL ID COLON . ARRAY OF ID + (76) declare_parameter -> BYVAL ID COLON . ID + (77) declare_parameter -> BYVAL ID COLON . ARRAY + (80) declare_parameter -> BYVAL ID COLON . ARRAY OF ID - ID shift and go to state 345 - ARRAY shift and go to state 346 + ID shift and go to state 347 + ARRAY shift and go to state 348 -state 308 +state 310 - (83) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 347 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 349 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20285,78 +20492,78 @@ state 308 statement shift and go to state 46 expression shift and go to state 9 -state 309 +state 311 - (85) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 85 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + (86) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 86 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 310 +state 312 - (96) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION + (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 348 - ARRAY shift and go to state 349 + ID shift and go to state 350 + ARRAY shift and go to state 351 -state 311 +state 313 - (98) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -20364,110 +20571,111 @@ state 311 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -20512,14 +20720,14 @@ state 311 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 350 + statements shift and go to state 352 statement shift and go to state 2 expression shift and go to state 9 -state 312 +state 314 - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION + (100) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -20527,112 +20735,113 @@ state 312 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - OF shift and go to state 352 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 354 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20676,252 +20885,252 @@ state 312 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 351 + statements shift and go to state 353 statement shift and go to state 2 expression shift and go to state 9 -state 313 +state 315 - (123) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes . RIGHT_SQUARE - (15) indexes -> indexes . COMMA expression + (124) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes . RIGHT_SQUARE + (16) indexes -> indexes . COMMA expression - RIGHT_SQUARE shift and go to state 353 - COMMA shift and go to state 172 + RIGHT_SQUARE shift and go to state 355 + COMMA shift and go to state 173 -state 314 +state 316 - (130) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN . - - DELETE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - DECLARE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - PUBLIC reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - PRIVATE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - CONSTANT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - INPUT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - OUTPUT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - _OUTPUT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - IF reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - CASE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - FOR reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - REPEAT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - WHILE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - PROCEDURE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - CALL reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - FUNCTION reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - RETURN reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - OPENFILE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - READFILE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - WRITEFILE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - CLOSEFILE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - SEEK reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - TYPE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - PASS reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - IMPORT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - CLASS reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - LEFT_SQUARE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ID reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - NOT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - MINUS reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - PLUS reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - LEFT_PAREN reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - DATE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - BOOLEAN reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - CHAR reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - STRING reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - REAL reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - INTEGER reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - MOD reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - DIV reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - POINTER reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - NEW reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - $end reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - UNTIL reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ENDWHILE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ENDTYPE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ENDCLASS reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ELSE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ENDIF reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ENDPROCEDURE reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - SEMICOLON reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - NEXT reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) - ENDFUNCTION reduce using rule 130 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + (131) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN . + + DELETE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + DECLARE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PUBLIC reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PRIVATE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CONSTANT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + INPUT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + OUTPUT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + _OUTPUT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + IF reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CASE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + FOR reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + REPEAT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + WHILE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PROCEDURE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CALL reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + FUNCTION reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + RETURN reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + OPENFILE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + READFILE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + WRITEFILE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CLOSEFILE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + SEEK reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + TYPE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PASS reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + IMPORT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CLASS reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ID reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + NOT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + MINUS reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PLUS reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + LEFT_PAREN reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + DATE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + BOOLEAN reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CHAR reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + STRING reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + REAL reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + INTEGER reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + MOD reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + DIV reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + POINTER reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + NEW reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + $end reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + UNTIL reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDWHILE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDTYPE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDCLASS reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ELSE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDIF reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + SEMICOLON reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + NEXT reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDFUNCTION reduce using rule 131 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) -state 315 +state 317 - (131) enumerate_items -> enumerate_items COMMA . ID + (132) enumerate_items -> enumerate_items COMMA . ID - ID shift and go to state 354 + ID shift and go to state 356 -state 316 +state 318 - (142) statement -> TYPE ID EQUAL SET OF ID . - - DELETE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - DECLARE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - PUBLIC reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - PRIVATE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - CONSTANT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - INPUT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - OUTPUT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - _OUTPUT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - IF reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - CASE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - FOR reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - REPEAT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - WHILE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - PROCEDURE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - CALL reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - FUNCTION reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - RETURN reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - OPENFILE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - READFILE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - WRITEFILE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - CLOSEFILE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - SEEK reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - TYPE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - PASS reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - IMPORT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - CLASS reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - LEFT_SQUARE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ID reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - NOT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - MINUS reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - PLUS reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - LEFT_PAREN reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - DATE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - BOOLEAN reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - CHAR reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - STRING reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - REAL reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - INTEGER reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - MOD reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - DIV reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - POINTER reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - NEW reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - $end reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - UNTIL reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ENDWHILE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ENDTYPE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ENDCLASS reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ELSE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ENDIF reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ENDPROCEDURE reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - SEMICOLON reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - NEXT reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) - ENDFUNCTION reduce using rule 142 (statement -> TYPE ID EQUAL SET OF ID .) + (143) statement -> TYPE ID EQUAL SET OF ID . + + DELETE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + DECLARE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + PUBLIC reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + PRIVATE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + CONSTANT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + INPUT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + OUTPUT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + _OUTPUT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + IF reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + CASE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + FOR reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + REPEAT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + WHILE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + PROCEDURE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + CALL reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + FUNCTION reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + RETURN reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + OPENFILE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + READFILE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + WRITEFILE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + CLOSEFILE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + SEEK reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + TYPE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + PASS reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + IMPORT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + CLASS reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + LEFT_SQUARE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ID reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + NOT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + MINUS reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + PLUS reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + LEFT_PAREN reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + DATE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + BOOLEAN reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + CHAR reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + STRING reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + REAL reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + INTEGER reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + MOD reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + DIV reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + POINTER reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + NEW reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + $end reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + UNTIL reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ENDWHILE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ENDTYPE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ENDCLASS reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ELSE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ENDIF reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ENDPROCEDURE reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + SEMICOLON reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + NEXT reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) + ENDFUNCTION reduce using rule 143 (statement -> TYPE ID EQUAL SET OF ID .) -state 317 +state 319 - (139) statement -> CLASS ID INHERITS ID statements ENDCLASS . - - DELETE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - DECLARE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - PUBLIC reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - PRIVATE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - CONSTANT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - INPUT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - OUTPUT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - _OUTPUT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - IF reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - CASE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - FOR reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - REPEAT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - WHILE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - PROCEDURE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - CALL reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - FUNCTION reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - RETURN reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - OPENFILE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - READFILE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - WRITEFILE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - CLOSEFILE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - SEEK reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - TYPE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - PASS reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - IMPORT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - CLASS reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - LEFT_SQUARE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ID reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - NOT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - MINUS reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - PLUS reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - LEFT_PAREN reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - DATE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - BOOLEAN reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - CHAR reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - STRING reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - REAL reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - INTEGER reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - MOD reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - DIV reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - POINTER reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - NEW reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - $end reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - UNTIL reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ENDWHILE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ENDTYPE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ENDCLASS reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ELSE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ENDIF reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ENDPROCEDURE reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - SEMICOLON reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - NEXT reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) - ENDFUNCTION reduce using rule 139 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + (140) statement -> CLASS ID INHERITS ID statements ENDCLASS . + + DELETE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + DECLARE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PUBLIC reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PRIVATE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CONSTANT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + INPUT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + OUTPUT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + _OUTPUT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + IF reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CASE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + FOR reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + REPEAT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + WHILE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PROCEDURE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CALL reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + FUNCTION reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + RETURN reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + OPENFILE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + READFILE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + WRITEFILE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CLOSEFILE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + SEEK reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + TYPE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PASS reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + IMPORT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CLASS reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + LEFT_SQUARE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ID reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + NOT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + MINUS reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PLUS reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + LEFT_PAREN reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + DATE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + BOOLEAN reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CHAR reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + STRING reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + REAL reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + INTEGER reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + MOD reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + DIV reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + POINTER reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + NEW reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + $end reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + UNTIL reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDWHILE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDTYPE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDCLASS reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ELSE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDIF reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDPROCEDURE reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + SEMICOLON reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + NEXT reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDFUNCTION reduce using rule 140 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) -state 318 +state 320 - (8) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID + (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID - OF shift and go to state 355 + OF shift and go to state 357 -state 319 +state 321 - (11) dimensions -> dimensions COMMA . dimension - (13) dimension -> . expression COLON expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (12) dimensions -> dimensions COMMA . dimension + (14) dimension -> . expression COLON expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -20940,50 +21149,50 @@ state 319 POINTER shift and go to state 31 NEW shift and go to state 21 - dimension shift and go to state 356 - expression shift and go to state 281 + dimension shift and go to state 358 + expression shift and go to state 283 -state 320 +state 322 - (13) dimension -> expression COLON . expression - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (14) dimension -> expression COLON . expression + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -21002,130 +21211,131 @@ state 320 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 357 + expression shift and go to state 359 -state 321 +state 323 - (9) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID + (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID - OF shift and go to state 358 + OF shift and go to state 360 -state 322 +state 324 - (86) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 359 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 361 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21172,180 +21382,181 @@ state 322 statement shift and go to state 46 expression shift and go to state 9 -state 323 +state 325 - (88) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 88 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + (89) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 89 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 324 +state 326 - (87) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 360 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 362 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21392,78 +21603,78 @@ state 324 statement shift and go to state 46 expression shift and go to state 9 -state 325 +state 327 - (89) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 89 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + (90) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 90 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 326 +state 328 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 361 - ARRAY shift and go to state 362 + ID shift and go to state 363 + ARRAY shift and go to state 364 -state 327 +state 329 - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -21471,110 +21682,111 @@ state 327 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -21619,14 +21831,14 @@ state 327 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 363 + statements shift and go to state 365 statement shift and go to state 2 expression shift and go to state 9 -state 328 +state 330 - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION + (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -21634,112 +21846,113 @@ state 328 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - OF shift and go to state 365 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 367 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21783,132 +21996,133 @@ state 328 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 364 + statements shift and go to state 366 statement shift and go to state 2 expression shift and go to state 9 -state 329 +state 331 - (10) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID + (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID - OF shift and go to state 366 + OF shift and go to state 368 -state 330 +state 332 - (90) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 367 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 369 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21955,180 +22169,181 @@ state 330 statement shift and go to state 46 expression shift and go to state 9 -state 331 +state 333 - (92) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 92 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + (93) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 93 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 332 +state 334 - (91) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDPROCEDURE shift and go to state 368 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 370 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -22175,78 +22390,78 @@ state 332 statement shift and go to state 46 expression shift and go to state 9 -state 333 +state 335 - (93) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 93 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + (94) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 94 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 334 +state 336 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 369 - ARRAY shift and go to state 370 + ID shift and go to state 371 + ARRAY shift and go to state 372 -state 335 +state 337 - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -22254,110 +22469,111 @@ state 335 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -22402,14 +22618,14 @@ state 335 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 371 + statements shift and go to state 373 statement shift and go to state 2 expression shift and go to state 9 -state 336 +state 338 - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION + (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -22417,112 +22633,113 @@ state 336 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - OF shift and go to state 373 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 375 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -22566,134 +22783,134 @@ state 336 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 372 + statements shift and go to state 374 statement shift and go to state 2 expression shift and go to state 9 -state 337 +state 339 - (26) statement -> IF expression THEN statements ELSE statements ENDIF . - - DELETE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - DECLARE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - PUBLIC reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - PRIVATE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - CONSTANT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - INPUT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - OUTPUT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - _OUTPUT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - IF reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - CASE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - FOR reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - REPEAT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - WHILE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - PROCEDURE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - CALL reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - FUNCTION reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - RETURN reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - OPENFILE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - READFILE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - WRITEFILE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - CLOSEFILE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - SEEK reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - TYPE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - PASS reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - IMPORT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - CLASS reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - LEFT_SQUARE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ID reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - NOT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - MINUS reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - PLUS reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - LEFT_PAREN reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - DATE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - BOOLEAN reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - CHAR reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - STRING reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - REAL reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - INTEGER reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - MOD reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - DIV reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - POINTER reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - NEW reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - $end reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - UNTIL reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ENDWHILE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ENDTYPE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ENDCLASS reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ELSE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ENDIF reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ENDPROCEDURE reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - SEMICOLON reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - NEXT reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) - ENDFUNCTION reduce using rule 26 (statement -> IF expression THEN statements ELSE statements ENDIF .) + (27) statement -> IF expression THEN statements ELSE statements ENDIF . + + DELETE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + DECLARE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PUBLIC reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PRIVATE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CONSTANT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + INPUT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + OUTPUT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + _OUTPUT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + IF reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CASE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + FOR reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + REPEAT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + WHILE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PROCEDURE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CALL reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + FUNCTION reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + RETURN reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + OPENFILE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + READFILE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + WRITEFILE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CLOSEFILE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + SEEK reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + TYPE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PASS reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + IMPORT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CLASS reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + LEFT_SQUARE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ID reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + NOT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + MINUS reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PLUS reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + LEFT_PAREN reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + DATE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + BOOLEAN reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CHAR reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + STRING reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + REAL reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + INTEGER reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + MOD reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + DIV reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + POINTER reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + NEW reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + $end reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + UNTIL reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDWHILE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDTYPE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDCLASS reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ELSE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDIF reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDPROCEDURE reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + SEMICOLON reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + NEXT reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDFUNCTION reduce using rule 27 (statement -> IF expression THEN statements ELSE statements ENDIF .) -state 338 +state 340 - (31) case -> case_expression COLON statements SEMICOLON . - - ENDCASE reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - OTHERWISE reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - LEFT_SQUARE reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - ID reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - NOT reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - MINUS reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - PLUS reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - LEFT_PAREN reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - DATE reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - BOOLEAN reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - CHAR reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - STRING reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - REAL reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - INTEGER reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - MOD reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - DIV reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - POINTER reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) - NEW reduce using rule 31 (case -> case_expression COLON statements SEMICOLON .) + (32) case -> case_expression COLON statements SEMICOLON . + + ENDCASE reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + OTHERWISE reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + LEFT_SQUARE reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + ID reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + NOT reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + MINUS reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + PLUS reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + LEFT_PAREN reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + DATE reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + BOOLEAN reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + CHAR reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + STRING reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + REAL reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + INTEGER reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + MOD reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + DIV reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + POINTER reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) + NEW reduce using rule 32 (case -> case_expression COLON statements SEMICOLON .) -state 339 +state 341 - (36) statement -> FOR ID ASSIGN expression TO expression STEP . expression statements NEXT ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (37) statement -> FOR ID ASSIGN expression TO expression STEP . expression statements NEXT ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -22712,123 +22929,124 @@ state 339 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 374 + expression shift and go to state 376 -state 340 +state 342 - (37) statement -> FOR ID ASSIGN expression TO expression statements . NEXT ID + (38) statement -> FOR ID ASSIGN expression TO expression statements . NEXT ID (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - NEXT shift and go to state 375 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + NEXT shift and go to state 377 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -22875,170 +23093,170 @@ state 340 expression shift and go to state 9 statement shift and go to state 46 -state 341 +state 343 - (77) declare_parameter -> ID COLON ARRAY OF . ID + (78) declare_parameter -> ID COLON ARRAY OF . ID - ID shift and go to state 376 + ID shift and go to state 378 -state 342 +state 344 - (82) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 82 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 83 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 343 +state 345 - (73) declare_parameter -> BYREF ID COLON ID . + (74) declare_parameter -> BYREF ID COLON ID . - RIGHT_PAREN reduce using rule 73 (declare_parameter -> BYREF ID COLON ID .) - COMMA reduce using rule 73 (declare_parameter -> BYREF ID COLON ID .) + RIGHT_PAREN reduce using rule 74 (declare_parameter -> BYREF ID COLON ID .) + COMMA reduce using rule 74 (declare_parameter -> BYREF ID COLON ID .) -state 344 +state 346 - (74) declare_parameter -> BYREF ID COLON ARRAY . - (78) declare_parameter -> BYREF ID COLON ARRAY . OF ID + (75) declare_parameter -> BYREF ID COLON ARRAY . + (79) declare_parameter -> BYREF ID COLON ARRAY . OF ID - RIGHT_PAREN reduce using rule 74 (declare_parameter -> BYREF ID COLON ARRAY .) - COMMA reduce using rule 74 (declare_parameter -> BYREF ID COLON ARRAY .) - OF shift and go to state 377 + RIGHT_PAREN reduce using rule 75 (declare_parameter -> BYREF ID COLON ARRAY .) + COMMA reduce using rule 75 (declare_parameter -> BYREF ID COLON ARRAY .) + OF shift and go to state 379 -state 345 +state 347 - (75) declare_parameter -> BYVAL ID COLON ID . + (76) declare_parameter -> BYVAL ID COLON ID . - RIGHT_PAREN reduce using rule 75 (declare_parameter -> BYVAL ID COLON ID .) - COMMA reduce using rule 75 (declare_parameter -> BYVAL ID COLON ID .) + RIGHT_PAREN reduce using rule 76 (declare_parameter -> BYVAL ID COLON ID .) + COMMA reduce using rule 76 (declare_parameter -> BYVAL ID COLON ID .) -state 346 +state 348 - (76) declare_parameter -> BYVAL ID COLON ARRAY . - (79) declare_parameter -> BYVAL ID COLON ARRAY . OF ID + (77) declare_parameter -> BYVAL ID COLON ARRAY . + (80) declare_parameter -> BYVAL ID COLON ARRAY . OF ID - RIGHT_PAREN reduce using rule 76 (declare_parameter -> BYVAL ID COLON ARRAY .) - COMMA reduce using rule 76 (declare_parameter -> BYVAL ID COLON ARRAY .) - OF shift and go to state 378 + RIGHT_PAREN reduce using rule 77 (declare_parameter -> BYVAL ID COLON ARRAY .) + COMMA reduce using rule 77 (declare_parameter -> BYVAL ID COLON ARRAY .) + OF shift and go to state 380 -state 347 +state 349 - (83) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 83 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 84 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 348 +state 350 - (96) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -23046,110 +23264,111 @@ state 348 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -23194,14 +23413,14 @@ state 348 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 379 + statements shift and go to state 381 statement shift and go to state 2 expression shift and go to state 9 -state 349 +state 351 - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION + (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -23209,112 +23428,113 @@ state 349 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - OF shift and go to state 381 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 383 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23358,125 +23578,126 @@ state 349 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 380 + statements shift and go to state 382 statement shift and go to state 2 expression shift and go to state 9 -state 350 +state 352 - (98) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 382 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 384 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23523,121 +23744,122 @@ state 350 statement shift and go to state 46 expression shift and go to state 9 -state 351 +state 353 - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (100) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 383 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 385 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23684,118 +23906,118 @@ state 351 statement shift and go to state 46 expression shift and go to state 9 -state 352 +state 354 - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 384 + ID shift and go to state 386 -state 353 +state 355 - (123) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE . - - DELETE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DECLARE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PUBLIC reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PRIVATE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CONSTANT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - INPUT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - OUTPUT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - _OUTPUT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - IF reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CASE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - FOR reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - REPEAT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - WHILE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PROCEDURE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CALL reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - FUNCTION reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - RETURN reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - OPENFILE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - READFILE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - WRITEFILE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CLOSEFILE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - SEEK reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - TYPE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PASS reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - IMPORT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CLASS reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - LEFT_SQUARE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ID reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NOT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - MINUS reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - PLUS reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - LEFT_PAREN reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DATE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - BOOLEAN reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - CHAR reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - STRING reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - REAL reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - INTEGER reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - MOD reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - DIV reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - POINTER reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NEW reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - $end reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - UNTIL reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDWHILE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDTYPE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDCLASS reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ELSE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDIF reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDPROCEDURE reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - SEMICOLON reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - NEXT reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) - ENDFUNCTION reduce using rule 123 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + (124) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE . + + DELETE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DECLARE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PUBLIC reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PRIVATE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CONSTANT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INPUT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OUTPUT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + _OUTPUT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IF reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CASE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FOR reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REPEAT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WHILE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PROCEDURE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CALL reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FUNCTION reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RETURN reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OPENFILE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + READFILE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WRITEFILE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLOSEFILE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEEK reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + TYPE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PASS reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IMPORT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLASS reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ID reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NOT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MINUS reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PLUS reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DATE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + BOOLEAN reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CHAR reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + STRING reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REAL reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INTEGER reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MOD reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DIV reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + POINTER reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEW reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + $end reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + UNTIL reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDWHILE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDTYPE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDCLASS reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ELSE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDIF reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEMICOLON reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEXT reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 124 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) -state 354 +state 356 - (131) enumerate_items -> enumerate_items COMMA ID . + (132) enumerate_items -> enumerate_items COMMA ID . - RIGHT_PAREN reduce using rule 131 (enumerate_items -> enumerate_items COMMA ID .) - COMMA reduce using rule 131 (enumerate_items -> enumerate_items COMMA ID .) + RIGHT_PAREN reduce using rule 132 (enumerate_items -> enumerate_items COMMA ID .) + COMMA reduce using rule 132 (enumerate_items -> enumerate_items COMMA ID .) -state 355 +state 357 - (8) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID + (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID - ID shift and go to state 385 + ID shift and go to state 387 -state 356 +state 358 - (11) dimensions -> dimensions COMMA dimension . + (12) dimensions -> dimensions COMMA dimension . - RIGHT_SQUARE reduce using rule 11 (dimensions -> dimensions COMMA dimension .) - COMMA reduce using rule 11 (dimensions -> dimensions COMMA dimension .) + RIGHT_SQUARE reduce using rule 12 (dimensions -> dimensions COMMA dimension .) + COMMA reduce using rule 12 (dimensions -> dimensions COMMA dimension .) -state 357 +state 359 - (13) dimension -> expression COLON expression . - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER - - RIGHT_SQUARE reduce using rule 13 (dimension -> expression COLON expression .) - COMMA reduce using rule 13 (dimension -> expression COLON expression .) + (14) dimension -> expression COLON expression . + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 14 (dimension -> expression COLON expression .) + COMMA reduce using rule 14 (dimension -> expression COLON expression .) OR shift and go to state 59 AND shift and go to state 60 EQUAL shift and go to state 61 @@ -23815,134 +24037,134 @@ state 357 POINTER shift and go to state 75 -state 358 +state 360 - (9) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID + (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID - ID shift and go to state 386 + ID shift and go to state 388 -state 359 +state 361 - (86) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 86 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 87 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 360 +state 362 - (87) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 87 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 88 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 361 +state 363 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -23950,110 +24172,111 @@ state 361 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -24098,14 +24321,14 @@ state 361 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 387 + statements shift and go to state 389 statement shift and go to state 2 expression shift and go to state 9 -state 362 +state 364 - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -24113,112 +24336,113 @@ state 362 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - OF shift and go to state 389 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 391 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -24262,125 +24486,126 @@ state 362 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 388 + statements shift and go to state 390 statement shift and go to state 2 expression shift and go to state 9 -state 363 +state 365 - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 390 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 392 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -24427,121 +24652,122 @@ state 363 statement shift and go to state 46 expression shift and go to state 9 -state 364 +state 366 - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 391 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 393 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -24588,141 +24814,141 @@ state 364 statement shift and go to state 46 expression shift and go to state 9 -state 365 +state 367 - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 392 + ID shift and go to state 394 -state 366 +state 368 - (10) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID + (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID - ID shift and go to state 393 + ID shift and go to state 395 -state 367 +state 369 - (90) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 90 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 91 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 368 +state 370 - (91) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . - - DELETE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DECLARE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PUBLIC reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PRIVATE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CONSTANT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INPUT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OUTPUT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - _OUTPUT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IF reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CASE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FOR reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REPEAT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WHILE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PROCEDURE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CALL reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - FUNCTION reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - RETURN reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - OPENFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - READFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - WRITEFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLOSEFILE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEEK reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - TYPE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PASS reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - IMPORT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CLASS reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_SQUARE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ID reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NOT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MINUS reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - PLUS reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - LEFT_PAREN reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DATE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - BOOLEAN reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - CHAR reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - STRING reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - REAL reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - INTEGER reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - MOD reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - DIV reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - POINTER reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEW reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - $end reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - UNTIL reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDWHILE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDTYPE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDCLASS reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ELSE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDIF reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDPROCEDURE reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - SEMICOLON reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - NEXT reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) - ENDFUNCTION reduce using rule 91 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 92 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 369 +state 371 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -24730,110 +24956,111 @@ state 369 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -24878,14 +25105,14 @@ state 369 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 394 + statements shift and go to state 396 statement shift and go to state 2 expression shift and go to state 9 -state 370 +state 372 - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -24893,112 +25120,113 @@ state 370 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - OF shift and go to state 396 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 398 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25042,125 +25270,126 @@ state 370 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 395 + statements shift and go to state 397 statement shift and go to state 2 expression shift and go to state 9 -state 371 +state 373 - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 397 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 399 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25207,121 +25436,122 @@ state 371 statement shift and go to state 46 expression shift and go to state 9 -state 372 +state 374 - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 398 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 400 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25368,33 +25598,33 @@ state 372 statement shift and go to state 46 expression shift and go to state 9 -state 373 +state 375 - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 399 + ID shift and go to state 401 -state 374 +state 376 - (36) statement -> FOR ID ASSIGN expression TO expression STEP expression . statements NEXT ID - (44) expression -> expression . OR expression - (45) expression -> expression . AND expression - (47) expression -> expression . EQUAL expression - (48) expression -> expression . NOT_EQUAL expression - (49) expression -> expression . LESS expression - (50) expression -> expression . GREATER expression - (51) expression -> expression . LESS_EQUAL expression - (52) expression -> expression . GREATER_EQUAL expression - (53) expression -> expression . MOD expression - (54) expression -> expression . DIV expression - (55) expression -> expression . MUL expression - (56) expression -> expression . N_DIV expression - (59) expression -> expression . PLUS expression - (60) expression -> expression . MINUS expression - (61) expression -> expression . CONNECT expression - (129) expression -> expression . DOT expression - (134) expression -> expression . POINTER + (37) statement -> FOR ID ASSIGN expression TO expression STEP expression . statements NEXT ID + (45) expression -> expression . OR expression + (46) expression -> expression . AND expression + (48) expression -> expression . EQUAL expression + (49) expression -> expression . NOT_EQUAL expression + (50) expression -> expression . LESS expression + (51) expression -> expression . GREATER expression + (52) expression -> expression . LESS_EQUAL expression + (53) expression -> expression . GREATER_EQUAL expression + (54) expression -> expression . MOD expression + (55) expression -> expression . DIV expression + (56) expression -> expression . MUL expression + (57) expression -> expression . N_DIV expression + (60) expression -> expression . PLUS expression + (61) expression -> expression . MINUS expression + (62) expression -> expression . CONNECT expression + (130) expression -> expression . DOT expression + (135) expression -> expression . POINTER (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -25402,110 +25632,111 @@ state 374 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN OR shift and go to state 59 AND shift and go to state 60 @@ -25515,15 +25746,15 @@ state 374 GREATER shift and go to state 64 LESS_EQUAL shift and go to state 65 GREATER_EQUAL shift and go to state 66 - MOD shift and go to state 150 - DIV shift and go to state 151 + MOD shift and go to state 151 + DIV shift and go to state 152 MUL shift and go to state 69 N_DIV shift and go to state 70 - PLUS shift and go to state 152 - MINUS shift and go to state 153 + PLUS shift and go to state 153 + MINUS shift and go to state 154 CONNECT shift and go to state 73 DOT shift and go to state 74 - POINTER shift and go to state 154 + POINTER shift and go to state 155 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25563,153 +25794,154 @@ state 374 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 400 + statements shift and go to state 402 statement shift and go to state 2 -state 375 +state 377 - (37) statement -> FOR ID ASSIGN expression TO expression statements NEXT . ID + (38) statement -> FOR ID ASSIGN expression TO expression statements NEXT . ID - ID shift and go to state 401 + ID shift and go to state 403 -state 376 +state 378 - (77) declare_parameter -> ID COLON ARRAY OF ID . + (78) declare_parameter -> ID COLON ARRAY OF ID . - RIGHT_PAREN reduce using rule 77 (declare_parameter -> ID COLON ARRAY OF ID .) - COMMA reduce using rule 77 (declare_parameter -> ID COLON ARRAY OF ID .) + RIGHT_PAREN reduce using rule 78 (declare_parameter -> ID COLON ARRAY OF ID .) + COMMA reduce using rule 78 (declare_parameter -> ID COLON ARRAY OF ID .) -state 377 +state 379 - (78) declare_parameter -> BYREF ID COLON ARRAY OF . ID + (79) declare_parameter -> BYREF ID COLON ARRAY OF . ID - ID shift and go to state 402 + ID shift and go to state 404 -state 378 +state 380 - (79) declare_parameter -> BYVAL ID COLON ARRAY OF . ID + (80) declare_parameter -> BYVAL ID COLON ARRAY OF . ID - ID shift and go to state 403 + ID shift and go to state 405 -state 379 +state 381 - (96) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 404 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 406 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25756,121 +25988,122 @@ state 379 statement shift and go to state 46 expression shift and go to state 9 -state 380 +state 382 - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 405 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 407 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25917,134 +26150,134 @@ state 380 statement shift and go to state 46 expression shift and go to state 9 -state 381 +state 383 - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 406 + ID shift and go to state 408 -state 382 +state 384 - (98) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . - - DELETE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DECLARE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PUBLIC reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PRIVATE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CONSTANT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INPUT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OUTPUT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IF reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CASE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FOR reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REPEAT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WHILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CALL reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FUNCTION reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - RETURN reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OPENFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - READFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEEK reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - TYPE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PASS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IMPORT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLASS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ID reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NOT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MINUS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PLUS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DATE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CHAR reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - STRING reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REAL reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INTEGER reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MOD reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DIV reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - POINTER reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEW reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - $end reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - UNTIL reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ELSE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDIF reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEXT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 383 +state 385 - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . - - DELETE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DECLARE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PUBLIC reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PRIVATE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CONSTANT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INPUT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OUTPUT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - _OUTPUT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IF reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CASE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FOR reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REPEAT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WHILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PROCEDURE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CALL reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FUNCTION reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - RETURN reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OPENFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - READFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WRITEFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLOSEFILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEEK reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - TYPE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PASS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IMPORT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLASS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ID reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NOT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MINUS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PLUS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DATE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - BOOLEAN reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CHAR reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - STRING reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REAL reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INTEGER reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MOD reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DIV reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - POINTER reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEW reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - $end reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - UNTIL reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDWHILE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDTYPE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDCLASS reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ELSE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDIF reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEMICOLON reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEXT reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 99 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + (100) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 100 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 384 +state 386 - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -26052,110 +26285,111 @@ state 384 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -26200,243 +26434,244 @@ state 384 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 407 + statements shift and go to state 409 statement shift and go to state 2 expression shift and go to state 9 -state 385 +state 387 - (8) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . - - DELETE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DECLARE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PUBLIC reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PRIVATE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CONSTANT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - INPUT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - OUTPUT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - _OUTPUT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - IF reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CASE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - FOR reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - REPEAT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - WHILE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PROCEDURE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CALL reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - FUNCTION reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - RETURN reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - OPENFILE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - READFILE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - WRITEFILE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CLOSEFILE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - SEEK reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - TYPE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PASS reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - IMPORT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CLASS reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - LEFT_SQUARE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ID reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NOT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - MINUS reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PLUS reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - LEFT_PAREN reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DATE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - BOOLEAN reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CHAR reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - STRING reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - REAL reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - INTEGER reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - MOD reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DIV reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - POINTER reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NEW reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - $end reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - UNTIL reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDWHILE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDTYPE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDCLASS reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ELSE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDIF reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDPROCEDURE reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - SEMICOLON reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NEXT reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDFUNCTION reduce using rule 8 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . + + DELETE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DECLARE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PUBLIC reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PRIVATE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CONSTANT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INPUT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OUTPUT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + _OUTPUT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IF reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CASE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FOR reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REPEAT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WHILE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PROCEDURE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CALL reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FUNCTION reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + RETURN reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OPENFILE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + READFILE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WRITEFILE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLOSEFILE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEEK reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + TYPE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PASS reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IMPORT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLASS reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_SQUARE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ID reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NOT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MINUS reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PLUS reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_PAREN reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DATE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + BOOLEAN reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CHAR reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + STRING reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REAL reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INTEGER reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MOD reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DIV reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + POINTER reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEW reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + $end reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + UNTIL reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDWHILE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDTYPE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDCLASS reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ELSE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDIF reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDPROCEDURE reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEMICOLON reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEXT reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDFUNCTION reduce using rule 9 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) -state 386 +state 388 - (9) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . - - DELETE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DECLARE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PUBLIC reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PRIVATE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CONSTANT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - INPUT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - OUTPUT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - _OUTPUT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - IF reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CASE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - FOR reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - REPEAT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - WHILE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PROCEDURE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CALL reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - FUNCTION reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - RETURN reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - OPENFILE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - READFILE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - WRITEFILE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CLOSEFILE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - SEEK reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - TYPE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PASS reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - IMPORT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CLASS reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - LEFT_SQUARE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ID reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NOT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - MINUS reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PLUS reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - LEFT_PAREN reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DATE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - BOOLEAN reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CHAR reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - STRING reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - REAL reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - INTEGER reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - MOD reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DIV reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - POINTER reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NEW reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - $end reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - UNTIL reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDWHILE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDTYPE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDCLASS reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ELSE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDIF reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDPROCEDURE reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - SEMICOLON reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NEXT reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDFUNCTION reduce using rule 9 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . + + DELETE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DECLARE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PUBLIC reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PRIVATE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CONSTANT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INPUT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OUTPUT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + _OUTPUT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IF reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CASE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FOR reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REPEAT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WHILE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PROCEDURE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CALL reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FUNCTION reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + RETURN reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OPENFILE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + READFILE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WRITEFILE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLOSEFILE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEEK reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + TYPE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PASS reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IMPORT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLASS reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_SQUARE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ID reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NOT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MINUS reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PLUS reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_PAREN reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DATE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + BOOLEAN reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CHAR reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + STRING reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REAL reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INTEGER reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MOD reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DIV reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + POINTER reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEW reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + $end reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + UNTIL reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDWHILE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDTYPE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDCLASS reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ELSE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDIF reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDPROCEDURE reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEMICOLON reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEXT reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDFUNCTION reduce using rule 10 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) -state 387 +state 389 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 408 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 410 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -26483,121 +26718,122 @@ state 387 statement shift and go to state 46 expression shift and go to state 9 -state 388 +state 390 - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 409 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 411 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -26644,134 +26880,134 @@ state 388 statement shift and go to state 46 expression shift and go to state 9 -state 389 +state 391 - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 410 + ID shift and go to state 412 -state 390 +state 392 - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . - - DELETE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DECLARE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PUBLIC reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PRIVATE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CONSTANT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INPUT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OUTPUT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IF reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CASE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FOR reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REPEAT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WHILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CALL reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FUNCTION reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - RETURN reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OPENFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - READFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEEK reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - TYPE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PASS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IMPORT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLASS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ID reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NOT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MINUS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PLUS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DATE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CHAR reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - STRING reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REAL reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INTEGER reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MOD reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DIV reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - POINTER reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEW reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - $end reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - UNTIL reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ELSE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDIF reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEXT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 391 +state 393 - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . - - DELETE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DECLARE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PUBLIC reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PRIVATE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CONSTANT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INPUT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OUTPUT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - _OUTPUT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IF reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CASE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FOR reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REPEAT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WHILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PROCEDURE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CALL reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FUNCTION reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - RETURN reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OPENFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - READFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WRITEFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLOSEFILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEEK reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - TYPE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PASS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IMPORT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLASS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ID reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NOT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MINUS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PLUS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DATE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - BOOLEAN reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CHAR reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - STRING reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REAL reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INTEGER reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MOD reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DIV reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - POINTER reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEW reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - $end reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - UNTIL reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDWHILE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDTYPE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDCLASS reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ELSE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDIF reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEMICOLON reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEXT reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 103 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 104 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 392 +state 394 - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -26779,110 +27015,111 @@ state 392 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -26927,184 +27164,185 @@ state 392 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 411 + statements shift and go to state 413 statement shift and go to state 2 expression shift and go to state 9 -state 393 +state 395 - (10) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . - - DELETE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DECLARE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PUBLIC reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PRIVATE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CONSTANT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - INPUT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - OUTPUT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - _OUTPUT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - IF reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CASE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - FOR reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - REPEAT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - WHILE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PROCEDURE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CALL reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - FUNCTION reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - RETURN reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - OPENFILE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - READFILE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - WRITEFILE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CLOSEFILE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - SEEK reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - TYPE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PASS reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - IMPORT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CLASS reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - LEFT_SQUARE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ID reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NOT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - MINUS reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - PLUS reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - LEFT_PAREN reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DATE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - BOOLEAN reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - CHAR reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - STRING reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - REAL reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - INTEGER reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - MOD reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - DIV reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - POINTER reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NEW reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - $end reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - UNTIL reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDWHILE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDTYPE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDCLASS reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ELSE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDIF reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDPROCEDURE reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - SEMICOLON reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - NEXT reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) - ENDFUNCTION reduce using rule 10 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . + + DELETE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DECLARE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PUBLIC reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PRIVATE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CONSTANT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INPUT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OUTPUT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + _OUTPUT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IF reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CASE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FOR reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REPEAT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WHILE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PROCEDURE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CALL reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FUNCTION reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + RETURN reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OPENFILE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + READFILE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WRITEFILE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLOSEFILE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEEK reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + TYPE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PASS reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IMPORT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLASS reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_SQUARE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ID reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NOT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MINUS reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PLUS reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_PAREN reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DATE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + BOOLEAN reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CHAR reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + STRING reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REAL reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INTEGER reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MOD reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DIV reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + POINTER reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEW reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + $end reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + UNTIL reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDWHILE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDTYPE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDCLASS reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ELSE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDIF reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDPROCEDURE reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEMICOLON reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEXT reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDFUNCTION reduce using rule 11 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) -state 394 +state 396 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 412 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 414 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -27151,121 +27389,122 @@ state 394 statement shift and go to state 46 expression shift and go to state 9 -state 395 +state 397 - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 413 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 415 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -27312,134 +27551,134 @@ state 395 statement shift and go to state 46 expression shift and go to state 9 -state 396 +state 398 - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 414 + ID shift and go to state 416 -state 397 +state 399 - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . - - DELETE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DECLARE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PUBLIC reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PRIVATE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CONSTANT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INPUT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OUTPUT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IF reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CASE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FOR reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REPEAT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WHILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CALL reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FUNCTION reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - RETURN reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OPENFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - READFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEEK reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - TYPE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PASS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IMPORT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLASS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ID reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NOT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MINUS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PLUS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DATE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CHAR reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - STRING reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REAL reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INTEGER reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MOD reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DIV reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - POINTER reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEW reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - $end reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - UNTIL reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ELSE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDIF reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEXT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 398 +state 400 - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . - - DELETE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DECLARE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PUBLIC reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PRIVATE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CONSTANT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INPUT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OUTPUT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - _OUTPUT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IF reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CASE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FOR reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REPEAT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WHILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PROCEDURE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CALL reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FUNCTION reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - RETURN reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OPENFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - READFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WRITEFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLOSEFILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEEK reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - TYPE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PASS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IMPORT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLASS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ID reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NOT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MINUS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PLUS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DATE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - BOOLEAN reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CHAR reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - STRING reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REAL reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INTEGER reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MOD reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DIV reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - POINTER reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEW reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - $end reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - UNTIL reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDWHILE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDTYPE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDCLASS reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ELSE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDIF reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEMICOLON reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEXT reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 107 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 108 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 399 +state 401 - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -27447,110 +27686,111 @@ state 399 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -27595,125 +27835,126 @@ state 399 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 415 + statements shift and go to state 417 statement shift and go to state 2 expression shift and go to state 9 -state 400 +state 402 - (36) statement -> FOR ID ASSIGN expression TO expression STEP expression statements . NEXT ID + (37) statement -> FOR ID ASSIGN expression TO expression STEP expression statements . NEXT ID (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - NEXT shift and go to state 416 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + NEXT shift and go to state 418 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -27760,202 +28001,202 @@ state 400 expression shift and go to state 9 statement shift and go to state 46 -state 401 +state 403 - (37) statement -> FOR ID ASSIGN expression TO expression statements NEXT ID . - - DELETE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - DECLARE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - PUBLIC reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - PRIVATE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - CONSTANT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - INPUT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - OUTPUT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - _OUTPUT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - IF reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - CASE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - FOR reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - REPEAT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - WHILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - PROCEDURE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - CALL reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - FUNCTION reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - RETURN reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - OPENFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - READFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - WRITEFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - CLOSEFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - SEEK reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - TYPE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - PASS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - IMPORT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - CLASS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - LEFT_SQUARE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ID reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - NOT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - MINUS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - PLUS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - LEFT_PAREN reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - DATE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - BOOLEAN reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - CHAR reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - STRING reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - REAL reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - INTEGER reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - MOD reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - DIV reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - POINTER reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - NEW reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - $end reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - UNTIL reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ENDWHILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ENDTYPE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ENDCLASS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ELSE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ENDIF reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ENDPROCEDURE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - SEMICOLON reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - NEXT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) - ENDFUNCTION reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + (38) statement -> FOR ID ASSIGN expression TO expression statements NEXT ID . + + DELETE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + DECLARE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PUBLIC reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PRIVATE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CONSTANT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + INPUT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + OUTPUT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + _OUTPUT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + IF reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CASE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + FOR reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + REPEAT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + WHILE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PROCEDURE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CALL reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + FUNCTION reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + RETURN reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + OPENFILE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + READFILE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + WRITEFILE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CLOSEFILE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + SEEK reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + TYPE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PASS reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + IMPORT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CLASS reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + LEFT_SQUARE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ID reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + NOT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + MINUS reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PLUS reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + LEFT_PAREN reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + DATE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + BOOLEAN reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CHAR reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + STRING reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + REAL reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + INTEGER reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + MOD reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + DIV reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + POINTER reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + NEW reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + $end reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + UNTIL reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDWHILE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDTYPE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDCLASS reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ELSE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDIF reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDPROCEDURE reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + SEMICOLON reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + NEXT reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDFUNCTION reduce using rule 38 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) -state 402 +state 404 - (78) declare_parameter -> BYREF ID COLON ARRAY OF ID . + (79) declare_parameter -> BYREF ID COLON ARRAY OF ID . - RIGHT_PAREN reduce using rule 78 (declare_parameter -> BYREF ID COLON ARRAY OF ID .) - COMMA reduce using rule 78 (declare_parameter -> BYREF ID COLON ARRAY OF ID .) + RIGHT_PAREN reduce using rule 79 (declare_parameter -> BYREF ID COLON ARRAY OF ID .) + COMMA reduce using rule 79 (declare_parameter -> BYREF ID COLON ARRAY OF ID .) -state 403 +state 405 - (79) declare_parameter -> BYVAL ID COLON ARRAY OF ID . + (80) declare_parameter -> BYVAL ID COLON ARRAY OF ID . - RIGHT_PAREN reduce using rule 79 (declare_parameter -> BYVAL ID COLON ARRAY OF ID .) - COMMA reduce using rule 79 (declare_parameter -> BYVAL ID COLON ARRAY OF ID .) + RIGHT_PAREN reduce using rule 80 (declare_parameter -> BYVAL ID COLON ARRAY OF ID .) + COMMA reduce using rule 80 (declare_parameter -> BYVAL ID COLON ARRAY OF ID .) -state 404 +state 406 - (96) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . - - DELETE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DECLARE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PUBLIC reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PRIVATE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CONSTANT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INPUT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OUTPUT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IF reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CASE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FOR reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REPEAT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WHILE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CALL reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FUNCTION reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - RETURN reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OPENFILE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - READFILE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEEK reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - TYPE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PASS reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IMPORT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLASS reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ID reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NOT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MINUS reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PLUS reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DATE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CHAR reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - STRING reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REAL reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INTEGER reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MOD reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DIV reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - POINTER reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEW reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - $end reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - UNTIL reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ELSE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDIF reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEXT reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 96 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 405 +state 407 - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . - - DELETE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DECLARE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PUBLIC reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PRIVATE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CONSTANT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INPUT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OUTPUT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - _OUTPUT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IF reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CASE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FOR reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REPEAT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WHILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PROCEDURE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CALL reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FUNCTION reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - RETURN reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OPENFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - READFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WRITEFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLOSEFILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEEK reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - TYPE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PASS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IMPORT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLASS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ID reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NOT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MINUS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PLUS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DATE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - BOOLEAN reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CHAR reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - STRING reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REAL reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INTEGER reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MOD reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DIV reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - POINTER reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEW reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - $end reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - UNTIL reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDWHILE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDTYPE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDCLASS reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ELSE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDIF reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEMICOLON reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEXT reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 97 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 98 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 406 +state 408 - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -27963,110 +28204,111 @@ state 406 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -28111,125 +28353,126 @@ state 406 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 417 + statements shift and go to state 419 statement shift and go to state 2 expression shift and go to state 9 -state 407 +state 409 - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 418 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 420 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -28276,127 +28519,127 @@ state 407 statement shift and go to state 46 expression shift and go to state 9 -state 408 +state 410 - (100) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . - - DELETE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DECLARE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PUBLIC reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PRIVATE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CONSTANT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INPUT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OUTPUT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IF reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CASE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FOR reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REPEAT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WHILE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CALL reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FUNCTION reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - RETURN reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OPENFILE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - READFILE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEEK reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - TYPE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PASS reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IMPORT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLASS reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ID reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NOT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MINUS reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PLUS reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DATE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CHAR reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - STRING reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REAL reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INTEGER reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MOD reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DIV reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - POINTER reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEW reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - $end reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - UNTIL reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ELSE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDIF reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEXT reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 100 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 409 +state 411 - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . - - DELETE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DECLARE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PUBLIC reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PRIVATE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CONSTANT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INPUT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OUTPUT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - _OUTPUT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IF reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CASE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FOR reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REPEAT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WHILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PROCEDURE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CALL reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FUNCTION reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - RETURN reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OPENFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - READFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WRITEFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLOSEFILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEEK reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - TYPE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PASS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IMPORT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLASS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ID reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NOT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MINUS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PLUS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DATE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - BOOLEAN reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CHAR reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - STRING reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REAL reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INTEGER reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MOD reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DIV reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - POINTER reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEW reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - $end reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - UNTIL reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDWHILE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDTYPE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDCLASS reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ELSE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDIF reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEMICOLON reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEXT reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 101 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 102 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 410 +state 412 - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -28404,110 +28647,111 @@ state 410 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -28552,125 +28796,126 @@ state 410 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 419 + statements shift and go to state 421 statement shift and go to state 2 expression shift and go to state 9 -state 411 +state 413 - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - ENDFUNCTION shift and go to state 420 + ENDFUNCTION shift and go to state 422 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -28717,127 +28962,127 @@ state 411 statement shift and go to state 46 expression shift and go to state 9 -state 412 +state 414 - (104) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . - - DELETE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DECLARE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PUBLIC reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PRIVATE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CONSTANT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INPUT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OUTPUT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IF reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CASE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FOR reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REPEAT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WHILE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CALL reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - FUNCTION reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - RETURN reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - OPENFILE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - READFILE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEEK reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - TYPE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PASS reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - IMPORT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CLASS reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ID reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NOT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MINUS reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - PLUS reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DATE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - CHAR reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - STRING reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - REAL reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - INTEGER reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - MOD reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - DIV reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - POINTER reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEW reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - $end reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - UNTIL reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ELSE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDIF reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - NEXT reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 104 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 413 +state 415 - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . - - DELETE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DECLARE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PUBLIC reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PRIVATE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CONSTANT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INPUT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OUTPUT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - _OUTPUT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IF reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CASE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FOR reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REPEAT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WHILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PROCEDURE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CALL reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - FUNCTION reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - RETURN reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - OPENFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - READFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - WRITEFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLOSEFILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEEK reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - TYPE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PASS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - IMPORT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CLASS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ID reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NOT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MINUS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - PLUS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DATE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - BOOLEAN reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - CHAR reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - STRING reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - REAL reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - INTEGER reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - MOD reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - DIV reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - POINTER reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEW reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - $end reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - UNTIL reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDWHILE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDTYPE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDCLASS reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ELSE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDIF reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - SEMICOLON reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - NEXT reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 105 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 106 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 414 +state 416 - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) statements -> . statement (3) statement -> . DELETE ID @@ -28845,110 +29090,111 @@ state 414 (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -28993,125 +29239,126 @@ state 414 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 421 + statements shift and go to state 423 statement shift and go to state 2 expression shift and go to state 9 -state 415 +state 417 - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - ENDFUNCTION shift and go to state 422 + ENDFUNCTION shift and go to state 424 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29158,128 +29405,129 @@ state 415 statement shift and go to state 46 expression shift and go to state 9 -state 416 +state 418 - (36) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT . ID + (37) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT . ID - ID shift and go to state 423 + ID shift and go to state 425 -state 417 +state 419 - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - ENDFUNCTION shift and go to state 424 + ENDFUNCTION shift and go to state 426 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29326,180 +29574,181 @@ state 417 statement shift and go to state 46 expression shift and go to state 9 -state 418 +state 420 - (109) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . - - DELETE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DECLARE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PUBLIC reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PRIVATE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CONSTANT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INPUT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OUTPUT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IF reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CASE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FOR reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REPEAT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WHILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CALL reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FUNCTION reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - RETURN reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OPENFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - READFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEEK reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - TYPE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PASS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IMPORT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLASS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ID reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NOT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MINUS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PLUS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DATE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CHAR reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - STRING reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REAL reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INTEGER reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MOD reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DIV reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - POINTER reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEW reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - $end reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - UNTIL reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ELSE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDIF reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEXT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 110 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) -state 419 +state 421 - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 425 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 427 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29546,180 +29795,181 @@ state 419 statement shift and go to state 46 expression shift and go to state 9 -state 420 +state 422 - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . - - DELETE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DECLARE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PUBLIC reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PRIVATE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CONSTANT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INPUT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OUTPUT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IF reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CASE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FOR reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REPEAT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WHILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CALL reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FUNCTION reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - RETURN reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OPENFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - READFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEEK reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - TYPE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PASS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IMPORT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLASS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ID reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NOT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MINUS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PLUS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DATE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CHAR reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - STRING reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REAL reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INTEGER reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MOD reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DIV reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - POINTER reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEW reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - $end reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - UNTIL reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ELSE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDIF reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEXT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 112 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) -state 421 +state 423 - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION (1) statements -> statements . statement (3) statement -> . DELETE ID (4) statement -> . DECLARE ID COLON ID (5) statement -> . PUBLIC ID COLON ID (6) statement -> . PRIVATE ID COLON ID (7) statement -> . CONSTANT ID EQUAL expression - (8) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (9) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (10) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - (14) statement -> . expression ASSIGN expression - (21) statement -> . INPUT expression - (22) statement -> . OUTPUT output_expression - (23) statement -> . _OUTPUT output_expression - (26) statement -> . IF expression THEN statements ELSE statements ENDIF - (27) statement -> . IF expression THEN statements ENDIF - (28) statement -> . CASE OF expression cases ENDCASE - (36) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID - (37) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID - (38) statement -> . REPEAT statements UNTIL expression - (39) statement -> . WHILE expression DO statements ENDWHILE - (40) statement -> . WHILE expression statements ENDWHILE - (41) statement -> . expression - (82) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (83) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (84) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (87) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (88) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (91) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (92) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN - (95) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN - (96) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (98) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (100) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (104) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION - (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION - (108) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (109) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (110) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - (118) statement -> . RETURN expression - (119) statement -> . OPENFILE expression FOR READ - (120) statement -> . OPENFILE expression FOR WRITE - (121) statement -> . OPENFILE expression FOR APPEND - (122) statement -> . OPENFILE expression FOR RANDOM - (123) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE - (124) statement -> . READFILE expression COMMA ID - (125) statement -> . WRITEFILE expression COMMA expression - (126) statement -> . CLOSEFILE expression - (127) statement -> . SEEK expression COMMA expression - (128) statement -> . TYPE ID statements ENDTYPE - (130) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN - (135) statement -> . TYPE ID EQUAL POINTER ID - (136) statement -> . PASS - (137) statement -> . IMPORT expression - (138) statement -> . CLASS ID statements ENDCLASS - (139) statement -> . CLASS ID INHERITS ID statements ENDCLASS - (142) statement -> . TYPE ID EQUAL SET OF ID - (17) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE - (18) expression -> . LEFT_SQUARE RIGHT_SQUARE - (42) expression -> . ID - (43) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE - (44) expression -> . expression OR expression - (45) expression -> . expression AND expression - (46) expression -> . NOT expression - (47) expression -> . expression EQUAL expression - (48) expression -> . expression NOT_EQUAL expression - (49) expression -> . expression LESS expression - (50) expression -> . expression GREATER expression - (51) expression -> . expression LESS_EQUAL expression - (52) expression -> . expression GREATER_EQUAL expression - (53) expression -> . expression MOD expression - (54) expression -> . expression DIV expression - (55) expression -> . expression MUL expression - (56) expression -> . expression N_DIV expression - (57) expression -> . MINUS expression - (58) expression -> . PLUS expression - (59) expression -> . expression PLUS expression - (60) expression -> . expression MINUS expression - (61) expression -> . expression CONNECT expression - (62) expression -> . LEFT_PAREN expression RIGHT_PAREN - (63) expression -> . DATE - (64) expression -> . BOOLEAN - (65) expression -> . CHAR - (66) expression -> . STRING - (67) expression -> . REAL - (68) expression -> . INTEGER - (114) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN - (115) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN - (116) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN - (117) expression -> . ID LEFT_PAREN RIGHT_PAREN - (129) expression -> . expression DOT expression - (133) expression -> . POINTER expression - (134) expression -> . expression POINTER - (140) expression -> . NEW ID - (141) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - - ENDFUNCTION shift and go to state 426 + (8) statement -> . CONSTANT ID ASSIGN expression + (9) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (10) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (11) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . expression ASSIGN expression + (22) statement -> . INPUT expression + (23) statement -> . OUTPUT output_expression + (24) statement -> . _OUTPUT output_expression + (27) statement -> . IF expression THEN statements ELSE statements ENDIF + (28) statement -> . IF expression THEN statements ENDIF + (29) statement -> . CASE OF expression cases ENDCASE + (37) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (38) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (39) statement -> . REPEAT statements UNTIL expression + (40) statement -> . WHILE expression DO statements ENDWHILE + (41) statement -> . WHILE expression statements ENDWHILE + (42) statement -> . expression + (83) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (84) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (85) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (86) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (87) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (96) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (97) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (98) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (99) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (100) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (101) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (102) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (103) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (104) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (105) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (106) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (107) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (108) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (109) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (110) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (111) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (112) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (114) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . RETURN expression + (120) statement -> . OPENFILE expression FOR READ + (121) statement -> . OPENFILE expression FOR WRITE + (122) statement -> . OPENFILE expression FOR APPEND + (123) statement -> . OPENFILE expression FOR RANDOM + (124) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (125) statement -> . READFILE expression COMMA ID + (126) statement -> . WRITEFILE expression COMMA expression + (127) statement -> . CLOSEFILE expression + (128) statement -> . SEEK expression COMMA expression + (129) statement -> . TYPE ID statements ENDTYPE + (131) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (136) statement -> . TYPE ID EQUAL POINTER ID + (137) statement -> . PASS + (138) statement -> . IMPORT expression + (139) statement -> . CLASS ID statements ENDCLASS + (140) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (143) statement -> . TYPE ID EQUAL SET OF ID + (18) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (19) expression -> . LEFT_SQUARE RIGHT_SQUARE + (43) expression -> . ID + (44) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (45) expression -> . expression OR expression + (46) expression -> . expression AND expression + (47) expression -> . NOT expression + (48) expression -> . expression EQUAL expression + (49) expression -> . expression NOT_EQUAL expression + (50) expression -> . expression LESS expression + (51) expression -> . expression GREATER expression + (52) expression -> . expression LESS_EQUAL expression + (53) expression -> . expression GREATER_EQUAL expression + (54) expression -> . expression MOD expression + (55) expression -> . expression DIV expression + (56) expression -> . expression MUL expression + (57) expression -> . expression N_DIV expression + (58) expression -> . MINUS expression + (59) expression -> . PLUS expression + (60) expression -> . expression PLUS expression + (61) expression -> . expression MINUS expression + (62) expression -> . expression CONNECT expression + (63) expression -> . LEFT_PAREN expression RIGHT_PAREN + (64) expression -> . DATE + (65) expression -> . BOOLEAN + (66) expression -> . CHAR + (67) expression -> . STRING + (68) expression -> . REAL + (69) expression -> . INTEGER + (115) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (116) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (117) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (118) expression -> . ID LEFT_PAREN RIGHT_PAREN + (130) expression -> . expression DOT expression + (134) expression -> . POINTER expression + (135) expression -> . expression POINTER + (141) expression -> . NEW ID + (142) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 428 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29766,299 +30016,299 @@ state 421 statement shift and go to state 46 expression shift and go to state 9 -state 422 - - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . - - DELETE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DECLARE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PUBLIC reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PRIVATE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CONSTANT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OUTPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IF reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CASE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FOR reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REPEAT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WHILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CALL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FUNCTION reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - RETURN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OPENFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - READFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEEK reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - TYPE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IMPORT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ID reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NOT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MINUS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PLUS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DATE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CHAR reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - STRING reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REAL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INTEGER reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MOD reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DIV reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - POINTER reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEW reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - $end reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - UNTIL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ELSE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDIF reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEXT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - - -state 423 - - (36) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID . - - DELETE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - DECLARE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - PUBLIC reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - PRIVATE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - CONSTANT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - INPUT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - OUTPUT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - _OUTPUT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - IF reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - CASE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - FOR reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - REPEAT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - WHILE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - PROCEDURE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - CALL reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - FUNCTION reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - RETURN reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - OPENFILE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - READFILE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - WRITEFILE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - CLOSEFILE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - SEEK reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - TYPE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - PASS reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - IMPORT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - CLASS reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - LEFT_SQUARE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ID reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - NOT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - MINUS reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - PLUS reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - LEFT_PAREN reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - DATE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - BOOLEAN reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - CHAR reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - STRING reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - REAL reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - INTEGER reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - MOD reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - DIV reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - POINTER reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - NEW reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - $end reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - UNTIL reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ENDWHILE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ENDTYPE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ENDCLASS reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ELSE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ENDIF reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ENDPROCEDURE reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - SEMICOLON reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - NEXT reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - ENDFUNCTION reduce using rule 36 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) - - state 424 - (108) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . - - DELETE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DECLARE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PUBLIC reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PRIVATE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CONSTANT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INPUT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OUTPUT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IF reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CASE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FOR reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REPEAT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WHILE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CALL reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FUNCTION reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - RETURN reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OPENFILE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - READFILE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEEK reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - TYPE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PASS reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IMPORT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLASS reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ID reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NOT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MINUS reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PLUS reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DATE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CHAR reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - STRING reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REAL reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INTEGER reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MOD reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DIV reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - POINTER reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEW reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - $end reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - UNTIL reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ELSE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDIF reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEXT reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 108 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 114 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) state 425 - (110) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . - - DELETE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DECLARE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PUBLIC reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PRIVATE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CONSTANT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INPUT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OUTPUT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IF reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CASE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FOR reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REPEAT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WHILE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CALL reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FUNCTION reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - RETURN reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OPENFILE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - READFILE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEEK reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - TYPE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PASS reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IMPORT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLASS reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ID reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NOT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MINUS reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PLUS reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DATE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CHAR reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - STRING reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REAL reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INTEGER reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MOD reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DIV reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - POINTER reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEW reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - $end reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - UNTIL reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ELSE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDIF reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEXT reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 110 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + (37) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID . + + DELETE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + DECLARE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PUBLIC reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PRIVATE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CONSTANT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + INPUT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + OUTPUT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + _OUTPUT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + IF reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CASE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + FOR reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + REPEAT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + WHILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PROCEDURE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CALL reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + FUNCTION reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + RETURN reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + OPENFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + READFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + WRITEFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CLOSEFILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + SEEK reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + TYPE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PASS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + IMPORT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CLASS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + LEFT_SQUARE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ID reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + NOT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + MINUS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PLUS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + LEFT_PAREN reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + DATE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + BOOLEAN reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CHAR reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + STRING reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + REAL reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + INTEGER reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + MOD reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + DIV reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + POINTER reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + NEW reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + $end reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + UNTIL reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDWHILE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDTYPE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDCLASS reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ELSE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDIF reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDPROCEDURE reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + SEMICOLON reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + NEXT reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDFUNCTION reduce using rule 37 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) state 426 - (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . - - DELETE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DECLARE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PUBLIC reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PRIVATE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CONSTANT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INPUT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OUTPUT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - _OUTPUT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IF reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CASE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FOR reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REPEAT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WHILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PROCEDURE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CALL reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - FUNCTION reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - RETURN reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - OPENFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - READFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - WRITEFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLOSEFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEEK reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - TYPE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PASS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - IMPORT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CLASS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_SQUARE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ID reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NOT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MINUS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - PLUS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - LEFT_PAREN reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DATE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - BOOLEAN reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - CHAR reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - STRING reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - REAL reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - INTEGER reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - MOD reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - DIV reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - POINTER reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEW reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - $end reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - UNTIL reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDWHILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDTYPE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDCLASS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ELSE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDIF reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDPROCEDURE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - SEMICOLON reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - NEXT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) - ENDFUNCTION reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 109 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 427 + + (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 111 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 428 + + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) WARNING: WARNING: Conflicts: @@ -30113,28 +30363,11 @@ WARNING: shift/reduce conflict for DIV in state 102 resolved as shift WARNING: shift/reduce conflict for PLUS in state 102 resolved as shift WARNING: shift/reduce conflict for MINUS in state 102 resolved as shift WARNING: shift/reduce conflict for POINTER in state 102 resolved as shift -WARNING: shift/reduce conflict for MOD in state 124 resolved as shift -WARNING: shift/reduce conflict for DIV in state 124 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 124 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 124 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 124 resolved as shift -WARNING: shift/reduce conflict for OR in state 139 resolved as shift -WARNING: shift/reduce conflict for AND in state 139 resolved as shift -WARNING: shift/reduce conflict for EQUAL in state 139 resolved as shift -WARNING: shift/reduce conflict for NOT_EQUAL in state 139 resolved as shift -WARNING: shift/reduce conflict for LESS in state 139 resolved as shift -WARNING: shift/reduce conflict for GREATER in state 139 resolved as shift -WARNING: shift/reduce conflict for LESS_EQUAL in state 139 resolved as shift -WARNING: shift/reduce conflict for GREATER_EQUAL in state 139 resolved as shift -WARNING: shift/reduce conflict for MOD in state 139 resolved as shift -WARNING: shift/reduce conflict for DIV in state 139 resolved as shift -WARNING: shift/reduce conflict for MUL in state 139 resolved as shift -WARNING: shift/reduce conflict for N_DIV in state 139 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 139 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 139 resolved as shift -WARNING: shift/reduce conflict for CONNECT in state 139 resolved as shift -WARNING: shift/reduce conflict for DOT in state 139 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 139 resolved as shift +WARNING: shift/reduce conflict for MOD in state 125 resolved as shift +WARNING: shift/reduce conflict for DIV in state 125 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 125 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 125 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 125 resolved as shift WARNING: shift/reduce conflict for OR in state 140 resolved as shift WARNING: shift/reduce conflict for AND in state 140 resolved as shift WARNING: shift/reduce conflict for EQUAL in state 140 resolved as shift @@ -30152,45 +30385,67 @@ WARNING: shift/reduce conflict for MINUS in state 140 resolved as shift WARNING: shift/reduce conflict for CONNECT in state 140 resolved as shift WARNING: shift/reduce conflict for DOT in state 140 resolved as shift WARNING: shift/reduce conflict for POINTER in state 140 resolved as shift -WARNING: shift/reduce conflict for LEFT_SQUARE in state 154 resolved as shift -WARNING: shift/reduce conflict for ID in state 154 resolved as shift -WARNING: shift/reduce conflict for NOT in state 154 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 154 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 154 resolved as shift -WARNING: shift/reduce conflict for LEFT_PAREN in state 154 resolved as shift -WARNING: shift/reduce conflict for DATE in state 154 resolved as shift -WARNING: shift/reduce conflict for BOOLEAN in state 154 resolved as shift -WARNING: shift/reduce conflict for CHAR in state 154 resolved as shift -WARNING: shift/reduce conflict for STRING in state 154 resolved as shift -WARNING: shift/reduce conflict for REAL in state 154 resolved as shift -WARNING: shift/reduce conflict for INTEGER in state 154 resolved as shift -WARNING: shift/reduce conflict for MOD in state 154 resolved as shift -WARNING: shift/reduce conflict for DIV in state 154 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 154 resolved as shift -WARNING: shift/reduce conflict for NEW in state 154 resolved as shift +WARNING: shift/reduce conflict for OR in state 141 resolved as shift +WARNING: shift/reduce conflict for AND in state 141 resolved as shift +WARNING: shift/reduce conflict for EQUAL in state 141 resolved as shift +WARNING: shift/reduce conflict for NOT_EQUAL in state 141 resolved as shift +WARNING: shift/reduce conflict for LESS in state 141 resolved as shift +WARNING: shift/reduce conflict for GREATER in state 141 resolved as shift +WARNING: shift/reduce conflict for LESS_EQUAL in state 141 resolved as shift +WARNING: shift/reduce conflict for GREATER_EQUAL in state 141 resolved as shift +WARNING: shift/reduce conflict for MOD in state 141 resolved as shift +WARNING: shift/reduce conflict for DIV in state 141 resolved as shift +WARNING: shift/reduce conflict for MUL in state 141 resolved as shift +WARNING: shift/reduce conflict for N_DIV in state 141 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 141 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 141 resolved as shift +WARNING: shift/reduce conflict for CONNECT in state 141 resolved as shift +WARNING: shift/reduce conflict for DOT in state 141 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 141 resolved as shift +WARNING: shift/reduce conflict for LEFT_SQUARE in state 155 resolved as shift +WARNING: shift/reduce conflict for ID in state 155 resolved as shift +WARNING: shift/reduce conflict for NOT in state 155 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 155 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 155 resolved as shift +WARNING: shift/reduce conflict for LEFT_PAREN in state 155 resolved as shift +WARNING: shift/reduce conflict for DATE in state 155 resolved as shift +WARNING: shift/reduce conflict for BOOLEAN in state 155 resolved as shift +WARNING: shift/reduce conflict for CHAR in state 155 resolved as shift +WARNING: shift/reduce conflict for STRING in state 155 resolved as shift +WARNING: shift/reduce conflict for REAL in state 155 resolved as shift +WARNING: shift/reduce conflict for INTEGER in state 155 resolved as shift +WARNING: shift/reduce conflict for MOD in state 155 resolved as shift +WARNING: shift/reduce conflict for DIV in state 155 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 155 resolved as shift +WARNING: shift/reduce conflict for NEW in state 155 resolved as shift WARNING: shift/reduce conflict for MOD in state 189 resolved as shift WARNING: shift/reduce conflict for DIV in state 189 resolved as shift WARNING: shift/reduce conflict for PLUS in state 189 resolved as shift WARNING: shift/reduce conflict for MINUS in state 189 resolved as shift WARNING: shift/reduce conflict for POINTER in state 189 resolved as shift -WARNING: shift/reduce conflict for MOD in state 198 resolved as shift -WARNING: shift/reduce conflict for DIV in state 198 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 198 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 198 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 198 resolved as shift -WARNING: shift/reduce conflict for LEFT_SQUARE in state 222 resolved as shift -WARNING: shift/reduce conflict for MOD in state 223 resolved as shift -WARNING: shift/reduce conflict for DIV in state 223 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 223 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 223 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 223 resolved as shift -WARNING: shift/reduce conflict for MOD in state 224 resolved as shift -WARNING: shift/reduce conflict for DIV in state 224 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 224 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 224 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 224 resolved as shift -WARNING: shift/reduce conflict for RIGHT_PAREN in state 260 resolved as shift -WARNING: reduce/reduce conflict in state 203 resolved using rule (expression -> PLUS expression) -WARNING: rejected rule (expression -> expression PLUS expression) in state 203 -WARNING: reduce/reduce conflict in state 204 resolved using rule (expression -> MINUS expression) -WARNING: rejected rule (expression -> expression MINUS expression) in state 204 +WARNING: shift/reduce conflict for MOD in state 191 resolved as shift +WARNING: shift/reduce conflict for DIV in state 191 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 191 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 191 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 191 resolved as shift +WARNING: shift/reduce conflict for MOD in state 200 resolved as shift +WARNING: shift/reduce conflict for DIV in state 200 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 200 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 200 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 200 resolved as shift +WARNING: shift/reduce conflict for LEFT_SQUARE in state 224 resolved as shift +WARNING: shift/reduce conflict for MOD in state 225 resolved as shift +WARNING: shift/reduce conflict for DIV in state 225 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 225 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 225 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 225 resolved as shift +WARNING: shift/reduce conflict for MOD in state 226 resolved as shift +WARNING: shift/reduce conflict for DIV in state 226 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 226 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 226 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 226 resolved as shift +WARNING: shift/reduce conflict for RIGHT_PAREN in state 262 resolved as shift +WARNING: reduce/reduce conflict in state 205 resolved using rule (expression -> PLUS expression) +WARNING: rejected rule (expression -> expression PLUS expression) in state 205 +WARNING: reduce/reduce conflict in state 206 resolved using rule (expression -> MINUS expression) +WARNING: rejected rule (expression -> expression MINUS expression) in state 206 diff --git a/parsetab.py b/parsetab.py index 51772dc..e328eac 100644 --- a/parsetab.py +++ b/parsetab.py @@ -6,9 +6,9 @@ _lr_method = 'LALR' -_lr_signature = 'statementsleftANDleftORleftNOTleftLESSGREATERLESS_EQUALGREATER_EQUALEQUALNOT_EQUALleftPLUSMINUSleftMULN_DIVMODDIVrightUMINUSrightUPLUSAND APPEND ARRAY ASSIGN BOOLEAN BYREF BYVAL CALL CASE CHAR CLASS CLOSEFILE COLON COMMA CONNECT CONSTANT DATE DECLARE DEFINE DELETE DIV DO DOT ELSE ENDCASE ENDCLASS ENDFUNCTION ENDIF ENDPROCEDURE ENDTYPE ENDWHILE EQUAL FOR FUNCTION GETRECORD GREATER GREATER_EQUAL ID IF IMPORT INHERITS INPUT INTEGER LEFT_BRACE LEFT_PAREN LEFT_SQUARE LESS LESS_EQUAL MINUS MOD MUL NEW NEWLINE NEXT NOT NOT_EQUAL N_DIV OF OPENFILE OR OTHERWISE OUTPUT PASS PLUS POINTER PRIVATE PROCEDURE PUBLIC PUTRECORD RANDOM READ READFILE REAL REPEAT RETURN RETURNS RIGHT_BRACE RIGHT_PAREN RIGHT_SQUARE SEEK SEMICOLON SET STEP STRING SUPER THEN TO TYPE UNTIL WHILE WRITE WRITEFILE _OUTPUTstatements : statements statement\n | statementstatement : DELETE IDstatement : DECLARE ID COLON ID\n | PUBLIC ID COLON IDstatement : PRIVATE ID COLON IDstatement : CONSTANT ID EQUAL expressionstatement : DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID\n | PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF IDstatement : PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF IDdimensions : dimensions COMMA dimension\n | dimensiondimension : expression COLON expressionstatement : expression ASSIGN expressionindexes : indexes COMMA expression\n | expressionexpression : LEFT_SQUARE array_items RIGHT_SQUARE\n | LEFT_SQUARE RIGHT_SQUAREarray_items : array_items COMMA expression\n | expressionstatement : INPUT expressionstatement : OUTPUT output_expressionstatement : _OUTPUT output_expressionoutput_expression : output_expression COMMA expression\n | expressionstatement : IF expression THEN statements ELSE statements ENDIF\n | IF expression THEN statements ENDIFstatement : CASE OF expression cases ENDCASEcases : cases case\n | casecase : case_expression COLON statements SEMICOLON\n | otherwise_statement SEMICOLONcase_expression : expression TO expression\n | expressionotherwise_statement : OTHERWISE COLON statementsstatement : FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID\n | FOR ID ASSIGN expression TO expression statements NEXT IDstatement : REPEAT statements UNTIL expressionstatement : WHILE expression DO statements ENDWHILE\n | WHILE expression statements ENDWHILEstatement : expressionexpression : IDexpression : ID LEFT_SQUARE indexes RIGHT_SQUAREexpression : expression OR expressionexpression : expression AND expressionexpression : NOT expressionexpression : expression EQUAL expressionexpression : expression NOT_EQUAL expressionexpression : expression LESS expressionexpression : expression GREATER expressionexpression : expression LESS_EQUAL expressionexpression : expression GREATER_EQUAL expressionexpression : expression MOD expressionexpression : expression DIV expressionexpression : expression MUL expressionexpression : expression N_DIV expressionexpression : MINUS expression %prec UMINUSexpression : PLUS expression %prec UPLUSexpression : expression PLUS expressionexpression : expression MINUS expressionexpression : expression CONNECT expressionexpression : LEFT_PAREN expression RIGHT_PARENexpression : DATEexpression : BOOLEANexpression : CHARexpression : STRINGexpression : REALexpression : INTEGERdeclare_parameters : declare_parameters COMMA declare_parameter\n | declare_parameterdeclare_parameter : ID COLON ID\n | ID COLON ARRAY\n | BYREF ID COLON ID\n | BYREF ID COLON ARRAY\n | BYVAL ID COLON ID\n | BYVAL ID COLON ARRAYdeclare_parameter : ID COLON ARRAY OF ID\n | BYREF ID COLON ARRAY OF ID\n | BYVAL ID COLON ARRAY OF IDparameters : parameters COMMA expression\n | expressionstatement : PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE\n | PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDUREstatement : PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE\n | PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDUREstatement : PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE\n | PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDUREstatement : CALL ID LEFT_PAREN parameters RIGHT_PAREN\n | CALL ID LEFT_PAREN RIGHT_PARENstatement : FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTIONstatement : PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTIONstatement : PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTIONstatement : FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTIONstatement : PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTIONstatement : PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTIONexpression : ID LEFT_PAREN parameters RIGHT_PAREN\n | MOD LEFT_PAREN parameters RIGHT_PAREN\n | DIV LEFT_PAREN parameters RIGHT_PAREN\n | ID LEFT_PAREN RIGHT_PARENstatement : RETURN expressionstatement : OPENFILE expression FOR READ\n | OPENFILE expression FOR WRITE\n | OPENFILE expression FOR APPEND\n | OPENFILE expression FOR RANDOMstatement : READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUAREstatement : READFILE expression COMMA IDstatement : WRITEFILE expression COMMA expressionstatement : CLOSEFILE expressionstatement : SEEK expression COMMA expressionstatement : TYPE ID statements ENDTYPEexpression : expression DOT expressionstatement : TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PARENenumerate_items : enumerate_items COMMA ID\n | IDexpression : POINTER expressionexpression : expression POINTERstatement : TYPE ID EQUAL POINTER IDstatement : PASSstatement : IMPORT expressionstatement : CLASS ID statements ENDCLASSstatement : CLASS ID INHERITS ID statements ENDCLASSexpression : NEW ID\n | NEW ID LEFT_PAREN parameters RIGHT_PARENstatement : TYPE ID EQUAL SET OF ID' +_lr_signature = 'statementsleftANDleftORleftNOTleftLESSGREATERLESS_EQUALGREATER_EQUALEQUALNOT_EQUALleftPLUSMINUSleftMULN_DIVMODDIVrightUMINUSrightUPLUSAND APPEND ARRAY ASSIGN BOOLEAN BYREF BYVAL CALL CASE CHAR CLASS CLOSEFILE COLON COMMA CONNECT CONSTANT DATE DECLARE DEFINE DELETE DIV DO DOT ELSE ENDCASE ENDCLASS ENDFUNCTION ENDIF ENDPROCEDURE ENDTYPE ENDWHILE EQUAL FOR FUNCTION GETRECORD GREATER GREATER_EQUAL ID IF IMPORT INHERITS INPUT INTEGER LEFT_BRACE LEFT_PAREN LEFT_SQUARE LESS LESS_EQUAL MINUS MOD MUL NEW NEWLINE NEXT NOT NOT_EQUAL N_DIV OF OPENFILE OR OTHERWISE OUTPUT PASS PLUS POINTER PRIVATE PROCEDURE PUBLIC PUTRECORD RANDOM READ READFILE REAL REPEAT RETURN RETURNS RIGHT_BRACE RIGHT_PAREN RIGHT_SQUARE SEEK SEMICOLON SET STEP STRING SUPER THEN TO TYPE UNTIL WHILE WRITE WRITEFILE _OUTPUTstatements : statements statement\n | statementstatement : DELETE IDstatement : DECLARE ID COLON ID\n | PUBLIC ID COLON IDstatement : PRIVATE ID COLON IDstatement : CONSTANT ID EQUAL expression\n | CONSTANT ID ASSIGN expressionstatement : DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID\n | PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF IDstatement : PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF IDdimensions : dimensions COMMA dimension\n | dimensiondimension : expression COLON expressionstatement : expression ASSIGN expressionindexes : indexes COMMA expression\n | expressionexpression : LEFT_SQUARE array_items RIGHT_SQUARE\n | LEFT_SQUARE RIGHT_SQUAREarray_items : array_items COMMA expression\n | expressionstatement : INPUT expressionstatement : OUTPUT output_expressionstatement : _OUTPUT output_expressionoutput_expression : output_expression COMMA expression\n | expressionstatement : IF expression THEN statements ELSE statements ENDIF\n | IF expression THEN statements ENDIFstatement : CASE OF expression cases ENDCASEcases : cases case\n | casecase : case_expression COLON statements SEMICOLON\n | otherwise_statement SEMICOLONcase_expression : expression TO expression\n | expressionotherwise_statement : OTHERWISE COLON statementsstatement : FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID\n | FOR ID ASSIGN expression TO expression statements NEXT IDstatement : REPEAT statements UNTIL expressionstatement : WHILE expression DO statements ENDWHILE\n | WHILE expression statements ENDWHILEstatement : expressionexpression : IDexpression : ID LEFT_SQUARE indexes RIGHT_SQUAREexpression : expression OR expressionexpression : expression AND expressionexpression : NOT expressionexpression : expression EQUAL expressionexpression : expression NOT_EQUAL expressionexpression : expression LESS expressionexpression : expression GREATER expressionexpression : expression LESS_EQUAL expressionexpression : expression GREATER_EQUAL expressionexpression : expression MOD expressionexpression : expression DIV expressionexpression : expression MUL expressionexpression : expression N_DIV expressionexpression : MINUS expression %prec UMINUSexpression : PLUS expression %prec UPLUSexpression : expression PLUS expressionexpression : expression MINUS expressionexpression : expression CONNECT expressionexpression : LEFT_PAREN expression RIGHT_PARENexpression : DATEexpression : BOOLEANexpression : CHARexpression : STRINGexpression : REALexpression : INTEGERdeclare_parameters : declare_parameters COMMA declare_parameter\n | declare_parameterdeclare_parameter : ID COLON ID\n | ID COLON ARRAY\n | BYREF ID COLON ID\n | BYREF ID COLON ARRAY\n | BYVAL ID COLON ID\n | BYVAL ID COLON ARRAYdeclare_parameter : ID COLON ARRAY OF ID\n | BYREF ID COLON ARRAY OF ID\n | BYVAL ID COLON ARRAY OF IDparameters : parameters COMMA expression\n | expressionstatement : PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE\n | PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDUREstatement : PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE\n | PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDUREstatement : PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE\n | PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE\n | PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDUREstatement : CALL ID LEFT_PAREN parameters RIGHT_PAREN\n | CALL ID LEFT_PAREN RIGHT_PARENstatement : FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTIONstatement : PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTIONstatement : PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTIONstatement : FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION\n | FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTIONstatement : PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION\n | PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTIONstatement : PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION\n | PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTIONexpression : ID LEFT_PAREN parameters RIGHT_PAREN\n | MOD LEFT_PAREN parameters RIGHT_PAREN\n | DIV LEFT_PAREN parameters RIGHT_PAREN\n | ID LEFT_PAREN RIGHT_PARENstatement : RETURN expressionstatement : OPENFILE expression FOR READ\n | OPENFILE expression FOR WRITE\n | OPENFILE expression FOR APPEND\n | OPENFILE expression FOR RANDOMstatement : READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUAREstatement : READFILE expression COMMA IDstatement : WRITEFILE expression COMMA expressionstatement : CLOSEFILE expressionstatement : SEEK expression COMMA expressionstatement : TYPE ID statements ENDTYPEexpression : expression DOT expressionstatement : TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PARENenumerate_items : enumerate_items COMMA ID\n | IDexpression : POINTER expressionexpression : expression POINTERstatement : TYPE ID EQUAL POINTER IDstatement : PASSstatement : IMPORT expressionstatement : CLASS ID statements ENDCLASSstatement : CLASS ID INHERITS ID statements ENDCLASSexpression : NEW ID\n | NEW ID LEFT_PAREN parameters RIGHT_PARENstatement : TYPE ID EQUAL SET OF ID' -_lr_action_items = {'DELETE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[3,3,-2,-42,-41,3,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,3,3,-140,-118,-126,3,-133,-137,3,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,3,3,3,-134,-62,3,3,-43,-114,-4,-5,-6,-7,-24,3,-38,3,-40,-58,-57,3,3,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,3,-115,-116,3,3,3,3,3,-27,-28,3,3,-39,3,3,3,3,-141,-94,-135,3,3,3,3,3,3,3,3,3,3,3,3,3,3,-84,3,-85,3,3,-130,-142,-139,3,-88,3,-89,3,3,3,-92,3,-93,3,3,-26,3,-82,-83,3,3,3,3,-123,-86,-87,3,3,3,3,-90,-91,3,3,3,3,3,3,3,-98,-99,3,-8,-9,3,3,-102,-103,3,-10,3,3,-106,-107,3,3,-37,-96,-97,3,3,-100,-101,3,3,-104,-105,3,3,3,-109,3,-111,3,-113,-36,-108,-110,-112,]),'DECLARE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[5,5,-2,-42,-41,5,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,5,5,-140,-118,-126,5,-133,-137,5,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,5,5,5,-134,-62,5,5,-43,-114,-4,-5,-6,-7,-24,5,-38,5,-40,-58,-57,5,5,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,5,-115,-116,5,5,5,5,5,-27,-28,5,5,-39,5,5,5,5,-141,-94,-135,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-84,5,-85,5,5,-130,-142,-139,5,-88,5,-89,5,5,5,-92,5,-93,5,5,-26,5,-82,-83,5,5,5,5,-123,-86,-87,5,5,5,5,-90,-91,5,5,5,5,5,5,5,-98,-99,5,-8,-9,5,5,-102,-103,5,-10,5,5,-106,-107,5,5,-37,-96,-97,5,5,-100,-101,5,5,-104,-105,5,5,5,-109,5,-111,5,-113,-36,-108,-110,-112,]),'PUBLIC':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[6,6,-2,-42,-41,6,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,6,6,-140,-118,-126,6,-133,-137,6,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,6,6,6,-134,-62,6,6,-43,-114,-4,-5,-6,-7,-24,6,-38,6,-40,-58,-57,6,6,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,6,-115,-116,6,6,6,6,6,-27,-28,6,6,-39,6,6,6,6,-141,-94,-135,6,6,6,6,6,6,6,6,6,6,6,6,6,6,-84,6,-85,6,6,-130,-142,-139,6,-88,6,-89,6,6,6,-92,6,-93,6,6,-26,6,-82,-83,6,6,6,6,-123,-86,-87,6,6,6,6,-90,-91,6,6,6,6,6,6,6,-98,-99,6,-8,-9,6,6,-102,-103,6,-10,6,6,-106,-107,6,6,-37,-96,-97,6,6,-100,-101,6,6,-104,-105,6,6,6,-109,6,-111,6,-113,-36,-108,-110,-112,]),'PRIVATE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[7,7,-2,-42,-41,7,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,7,7,-140,-118,-126,7,-133,-137,7,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,7,7,7,-134,-62,7,7,-43,-114,-4,-5,-6,-7,-24,7,-38,7,-40,-58,-57,7,7,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,7,-115,-116,7,7,7,7,7,-27,-28,7,7,-39,7,7,7,7,-141,-94,-135,7,7,7,7,7,7,7,7,7,7,7,7,7,7,-84,7,-85,7,7,-130,-142,-139,7,-88,7,-89,7,7,7,-92,7,-93,7,7,-26,7,-82,-83,7,7,7,7,-123,-86,-87,7,7,7,7,-90,-91,7,7,7,7,7,7,7,-98,-99,7,-8,-9,7,7,-102,-103,7,-10,7,7,-106,-107,7,7,-37,-96,-97,7,7,-100,-101,7,7,-104,-105,7,7,7,-109,7,-111,7,-113,-36,-108,-110,-112,]),'CONSTANT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[8,8,-2,-42,-41,8,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,8,8,-140,-118,-126,8,-133,-137,8,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,8,8,8,-134,-62,8,8,-43,-114,-4,-5,-6,-7,-24,8,-38,8,-40,-58,-57,8,8,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,8,-115,-116,8,8,8,8,8,-27,-28,8,8,-39,8,8,8,8,-141,-94,-135,8,8,8,8,8,8,8,8,8,8,8,8,8,8,-84,8,-85,8,8,-130,-142,-139,8,-88,8,-89,8,8,8,-92,8,-93,8,8,-26,8,-82,-83,8,8,8,8,-123,-86,-87,8,8,8,8,-90,-91,8,8,8,8,8,8,8,-98,-99,8,-8,-9,8,8,-102,-103,8,-10,8,8,-106,-107,8,8,-37,-96,-97,8,8,-100,-101,8,8,-104,-105,8,8,8,-109,8,-111,8,-113,-36,-108,-110,-112,]),'INPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[11,11,-2,-42,-41,11,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,11,11,-140,-118,-126,11,-133,-137,11,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,11,11,11,-134,-62,11,11,-43,-114,-4,-5,-6,-7,-24,11,-38,11,-40,-58,-57,11,11,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,11,-115,-116,11,11,11,11,11,-27,-28,11,11,-39,11,11,11,11,-141,-94,-135,11,11,11,11,11,11,11,11,11,11,11,11,11,11,-84,11,-85,11,11,-130,-142,-139,11,-88,11,-89,11,11,11,-92,11,-93,11,11,-26,11,-82,-83,11,11,11,11,-123,-86,-87,11,11,11,11,-90,-91,11,11,11,11,11,11,11,-98,-99,11,-8,-9,11,11,-102,-103,11,-10,11,11,-106,-107,11,11,-37,-96,-97,11,11,-100,-101,11,11,-104,-105,11,11,11,-109,11,-111,11,-113,-36,-108,-110,-112,]),'OUTPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[12,12,-2,-42,-41,12,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,12,12,-140,-118,-126,12,-133,-137,12,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,12,12,12,-134,-62,12,12,-43,-114,-4,-5,-6,-7,-24,12,-38,12,-40,-58,-57,12,12,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,12,-115,-116,12,12,12,12,12,-27,-28,12,12,-39,12,12,12,12,-141,-94,-135,12,12,12,12,12,12,12,12,12,12,12,12,12,12,-84,12,-85,12,12,-130,-142,-139,12,-88,12,-89,12,12,12,-92,12,-93,12,12,-26,12,-82,-83,12,12,12,12,-123,-86,-87,12,12,12,12,-90,-91,12,12,12,12,12,12,12,-98,-99,12,-8,-9,12,12,-102,-103,12,-10,12,12,-106,-107,12,12,-37,-96,-97,12,12,-100,-101,12,12,-104,-105,12,12,12,-109,12,-111,12,-113,-36,-108,-110,-112,]),'_OUTPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[13,13,-2,-42,-41,13,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,13,13,-140,-118,-126,13,-133,-137,13,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,13,13,13,-134,-62,13,13,-43,-114,-4,-5,-6,-7,-24,13,-38,13,-40,-58,-57,13,13,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,13,-115,-116,13,13,13,13,13,-27,-28,13,13,-39,13,13,13,13,-141,-94,-135,13,13,13,13,13,13,13,13,13,13,13,13,13,13,-84,13,-85,13,13,-130,-142,-139,13,-88,13,-89,13,13,13,-92,13,-93,13,13,-26,13,-82,-83,13,13,13,13,-123,-86,-87,13,13,13,13,-90,-91,13,13,13,13,13,13,13,-98,-99,13,-8,-9,13,13,-102,-103,13,-10,13,13,-106,-107,13,13,-37,-96,-97,13,13,-100,-101,13,13,-104,-105,13,13,13,-109,13,-111,13,-113,-36,-108,-110,-112,]),'IF':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[14,14,-2,-42,-41,14,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,14,14,-140,-118,-126,14,-133,-137,14,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,14,14,14,-134,-62,14,14,-43,-114,-4,-5,-6,-7,-24,14,-38,14,-40,-58,-57,14,14,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,14,-115,-116,14,14,14,14,14,-27,-28,14,14,-39,14,14,14,14,-141,-94,-135,14,14,14,14,14,14,14,14,14,14,14,14,14,14,-84,14,-85,14,14,-130,-142,-139,14,-88,14,-89,14,14,14,-92,14,-93,14,14,-26,14,-82,-83,14,14,14,14,-123,-86,-87,14,14,14,14,-90,-91,14,14,14,14,14,14,14,-98,-99,14,-8,-9,14,14,-102,-103,14,-10,14,14,-106,-107,14,14,-37,-96,-97,14,14,-100,-101,14,14,-104,-105,14,14,14,-109,14,-111,14,-113,-36,-108,-110,-112,]),'CASE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[15,15,-2,-42,-41,15,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,15,15,-140,-118,-126,15,-133,-137,15,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,15,15,15,-134,-62,15,15,-43,-114,-4,-5,-6,-7,-24,15,-38,15,-40,-58,-57,15,15,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,15,-115,-116,15,15,15,15,15,-27,-28,15,15,-39,15,15,15,15,-141,-94,-135,15,15,15,15,15,15,15,15,15,15,15,15,15,15,-84,15,-85,15,15,-130,-142,-139,15,-88,15,-89,15,15,15,-92,15,-93,15,15,-26,15,-82,-83,15,15,15,15,-123,-86,-87,15,15,15,15,-90,-91,15,15,15,15,15,15,15,-98,-99,15,-8,-9,15,15,-102,-103,15,-10,15,15,-106,-107,15,15,-37,-96,-97,15,15,-100,-101,15,15,-104,-105,15,15,15,-109,15,-111,15,-113,-36,-108,-110,-112,]),'FOR':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,95,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[16,16,-2,-42,-41,16,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,16,16,-140,-118,161,-126,16,-133,-137,16,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,16,16,16,-134,-62,16,16,-43,-114,-4,-5,-6,-7,-24,16,-38,16,-40,-58,-57,16,16,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,16,-115,-116,16,16,16,16,16,-27,-28,16,16,-39,16,16,16,16,-141,-94,-135,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-84,16,-85,16,16,-130,-142,-139,16,-88,16,-89,16,16,16,-92,16,-93,16,16,-26,16,-82,-83,16,16,16,16,-123,-86,-87,16,16,16,16,-90,-91,16,16,16,16,16,16,16,-98,-99,16,-8,-9,16,16,-102,-103,16,-10,16,16,-106,-107,16,16,-37,-96,-97,16,16,-100,-101,16,16,-104,-105,16,16,16,-109,16,-111,16,-113,-36,-108,-110,-112,]),'REPEAT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[17,17,-2,-42,-41,17,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,17,17,-140,-118,-126,17,-133,-137,17,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,17,17,17,-134,-62,17,17,-43,-114,-4,-5,-6,-7,-24,17,-38,17,-40,-58,-57,17,17,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,17,-115,-116,17,17,17,17,17,-27,-28,17,17,-39,17,17,17,17,-141,-94,-135,17,17,17,17,17,17,17,17,17,17,17,17,17,17,-84,17,-85,17,17,-130,-142,-139,17,-88,17,-89,17,17,17,-92,17,-93,17,17,-26,17,-82,-83,17,17,17,17,-123,-86,-87,17,17,17,17,-90,-91,17,17,17,17,17,17,17,-98,-99,17,-8,-9,17,17,-102,-103,17,-10,17,17,-106,-107,17,17,-37,-96,-97,17,17,-100,-101,17,17,-104,-105,17,17,17,-109,17,-111,17,-113,-36,-108,-110,-112,]),'WHILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[18,18,-2,-42,-41,18,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,18,18,-140,-118,-126,18,-133,-137,18,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,18,18,18,-134,-62,18,18,-43,-114,-4,-5,-6,-7,-24,18,-38,18,-40,-58,-57,18,18,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,18,-115,-116,18,18,18,18,18,-27,-28,18,18,-39,18,18,18,18,-141,-94,-135,18,18,18,18,18,18,18,18,18,18,18,18,18,18,-84,18,-85,18,18,-130,-142,-139,18,-88,18,-89,18,18,18,-92,18,-93,18,18,-26,18,-82,-83,18,18,18,18,-123,-86,-87,18,18,18,18,-90,-91,18,18,18,18,18,18,18,-98,-99,18,-8,-9,18,18,-102,-103,18,-10,18,18,-106,-107,18,18,-37,-96,-97,18,18,-100,-101,18,18,-104,-105,18,18,18,-109,18,-111,18,-113,-36,-108,-110,-112,]),'PROCEDURE':([0,1,2,4,6,7,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[19,19,-2,-42,52,55,-41,19,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,19,19,-140,-118,-126,19,-133,-137,19,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,19,19,19,-134,-62,19,19,-43,-114,-4,-5,-6,-7,-24,19,-38,19,-40,-58,-57,19,19,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,19,-115,-116,19,19,19,19,19,-27,-28,19,19,-39,19,19,19,19,-141,-94,-135,19,19,19,19,19,19,19,19,19,19,19,19,19,19,-84,19,-85,19,19,-130,-142,-139,19,-88,19,-89,19,19,19,-92,19,-93,19,19,-26,19,-82,-83,19,19,19,19,-123,-86,-87,19,19,19,19,-90,-91,19,19,19,19,19,19,19,-98,-99,19,-8,-9,19,19,-102,-103,19,-10,19,19,-106,-107,19,19,-37,-96,-97,19,19,-100,-101,19,19,-104,-105,19,19,19,-109,19,-111,19,-113,-36,-108,-110,-112,]),'CALL':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[22,22,-2,-42,-41,22,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,22,22,-140,-118,-126,22,-133,-137,22,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,22,22,22,-134,-62,22,22,-43,-114,-4,-5,-6,-7,-24,22,-38,22,-40,-58,-57,22,22,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,22,-115,-116,22,22,22,22,22,-27,-28,22,22,-39,22,22,22,22,-141,-94,-135,22,22,22,22,22,22,22,22,22,22,22,22,22,22,-84,22,-85,22,22,-130,-142,-139,22,-88,22,-89,22,22,22,-92,22,-93,22,22,-26,22,-82,-83,22,22,22,22,-123,-86,-87,22,22,22,22,-90,-91,22,22,22,22,22,22,22,-98,-99,22,-8,-9,22,22,-102,-103,22,-10,22,22,-106,-107,22,22,-37,-96,-97,22,22,-100,-101,22,22,-104,-105,22,22,22,-109,22,-111,22,-113,-36,-108,-110,-112,]),'FUNCTION':([0,1,2,4,6,7,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[23,23,-2,-42,53,56,-41,23,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,23,23,-140,-118,-126,23,-133,-137,23,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,23,23,23,-134,-62,23,23,-43,-114,-4,-5,-6,-7,-24,23,-38,23,-40,-58,-57,23,23,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,23,-115,-116,23,23,23,23,23,-27,-28,23,23,-39,23,23,23,23,-141,-94,-135,23,23,23,23,23,23,23,23,23,23,23,23,23,23,-84,23,-85,23,23,-130,-142,-139,23,-88,23,-89,23,23,23,-92,23,-93,23,23,-26,23,-82,-83,23,23,23,23,-123,-86,-87,23,23,23,23,-90,-91,23,23,23,23,23,23,23,-98,-99,23,-8,-9,23,23,-102,-103,23,-10,23,23,-106,-107,23,23,-37,-96,-97,23,23,-100,-101,23,23,-104,-105,23,23,23,-109,23,-111,23,-113,-36,-108,-110,-112,]),'RETURN':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[24,24,-2,-42,-41,24,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,24,24,-140,-118,-126,24,-133,-137,24,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,24,24,24,-134,-62,24,24,-43,-114,-4,-5,-6,-7,-24,24,-38,24,-40,-58,-57,24,24,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,24,-115,-116,24,24,24,24,24,-27,-28,24,24,-39,24,24,24,24,-141,-94,-135,24,24,24,24,24,24,24,24,24,24,24,24,24,24,-84,24,-85,24,24,-130,-142,-139,24,-88,24,-89,24,24,24,-92,24,-93,24,24,-26,24,-82,-83,24,24,24,24,-123,-86,-87,24,24,24,24,-90,-91,24,24,24,24,24,24,24,-98,-99,24,-8,-9,24,24,-102,-103,24,-10,24,24,-106,-107,24,24,-37,-96,-97,24,24,-100,-101,24,24,-104,-105,24,24,24,-109,24,-111,24,-113,-36,-108,-110,-112,]),'OPENFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[25,25,-2,-42,-41,25,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,25,25,-140,-118,-126,25,-133,-137,25,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,25,25,25,-134,-62,25,25,-43,-114,-4,-5,-6,-7,-24,25,-38,25,-40,-58,-57,25,25,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,25,-115,-116,25,25,25,25,25,-27,-28,25,25,-39,25,25,25,25,-141,-94,-135,25,25,25,25,25,25,25,25,25,25,25,25,25,25,-84,25,-85,25,25,-130,-142,-139,25,-88,25,-89,25,25,25,-92,25,-93,25,25,-26,25,-82,-83,25,25,25,25,-123,-86,-87,25,25,25,25,-90,-91,25,25,25,25,25,25,25,-98,-99,25,-8,-9,25,25,-102,-103,25,-10,25,25,-106,-107,25,25,-37,-96,-97,25,25,-100,-101,25,25,-104,-105,25,25,25,-109,25,-111,25,-113,-36,-108,-110,-112,]),'READFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[26,26,-2,-42,-41,26,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,26,26,-140,-118,-126,26,-133,-137,26,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,26,26,26,-134,-62,26,26,-43,-114,-4,-5,-6,-7,-24,26,-38,26,-40,-58,-57,26,26,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,26,-115,-116,26,26,26,26,26,-27,-28,26,26,-39,26,26,26,26,-141,-94,-135,26,26,26,26,26,26,26,26,26,26,26,26,26,26,-84,26,-85,26,26,-130,-142,-139,26,-88,26,-89,26,26,26,-92,26,-93,26,26,-26,26,-82,-83,26,26,26,26,-123,-86,-87,26,26,26,26,-90,-91,26,26,26,26,26,26,26,-98,-99,26,-8,-9,26,26,-102,-103,26,-10,26,26,-106,-107,26,26,-37,-96,-97,26,26,-100,-101,26,26,-104,-105,26,26,26,-109,26,-111,26,-113,-36,-108,-110,-112,]),'WRITEFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[27,27,-2,-42,-41,27,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,27,27,-140,-118,-126,27,-133,-137,27,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,27,27,27,-134,-62,27,27,-43,-114,-4,-5,-6,-7,-24,27,-38,27,-40,-58,-57,27,27,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,27,-115,-116,27,27,27,27,27,-27,-28,27,27,-39,27,27,27,27,-141,-94,-135,27,27,27,27,27,27,27,27,27,27,27,27,27,27,-84,27,-85,27,27,-130,-142,-139,27,-88,27,-89,27,27,27,-92,27,-93,27,27,-26,27,-82,-83,27,27,27,27,-123,-86,-87,27,27,27,27,-90,-91,27,27,27,27,27,27,27,-98,-99,27,-8,-9,27,27,-102,-103,27,-10,27,27,-106,-107,27,27,-37,-96,-97,27,27,-100,-101,27,27,-104,-105,27,27,27,-109,27,-111,27,-113,-36,-108,-110,-112,]),'CLOSEFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[28,28,-2,-42,-41,28,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,28,28,-140,-118,-126,28,-133,-137,28,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,28,28,28,-134,-62,28,28,-43,-114,-4,-5,-6,-7,-24,28,-38,28,-40,-58,-57,28,28,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,28,-115,-116,28,28,28,28,28,-27,-28,28,28,-39,28,28,28,28,-141,-94,-135,28,28,28,28,28,28,28,28,28,28,28,28,28,28,-84,28,-85,28,28,-130,-142,-139,28,-88,28,-89,28,28,28,-92,28,-93,28,28,-26,28,-82,-83,28,28,28,28,-123,-86,-87,28,28,28,28,-90,-91,28,28,28,28,28,28,28,-98,-99,28,-8,-9,28,28,-102,-103,28,-10,28,28,-106,-107,28,28,-37,-96,-97,28,28,-100,-101,28,28,-104,-105,28,28,28,-109,28,-111,28,-113,-36,-108,-110,-112,]),'SEEK':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[29,29,-2,-42,-41,29,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,29,29,-140,-118,-126,29,-133,-137,29,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,29,29,29,-134,-62,29,29,-43,-114,-4,-5,-6,-7,-24,29,-38,29,-40,-58,-57,29,29,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,29,-115,-116,29,29,29,29,29,-27,-28,29,29,-39,29,29,29,29,-141,-94,-135,29,29,29,29,29,29,29,29,29,29,29,29,29,29,-84,29,-85,29,29,-130,-142,-139,29,-88,29,-89,29,29,29,-92,29,-93,29,29,-26,29,-82,-83,29,29,29,29,-123,-86,-87,29,29,29,29,-90,-91,29,29,29,29,29,29,29,-98,-99,29,-8,-9,29,29,-102,-103,29,-10,29,29,-106,-107,29,29,-37,-96,-97,29,29,-100,-101,29,29,-104,-105,29,29,29,-109,29,-111,29,-113,-36,-108,-110,-112,]),'TYPE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[30,30,-2,-42,-41,30,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,30,30,-140,-118,-126,30,-133,-137,30,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,30,30,30,-134,-62,30,30,-43,-114,-4,-5,-6,-7,-24,30,-38,30,-40,-58,-57,30,30,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,30,-115,-116,30,30,30,30,30,-27,-28,30,30,-39,30,30,30,30,-141,-94,-135,30,30,30,30,30,30,30,30,30,30,30,30,30,30,-84,30,-85,30,30,-130,-142,-139,30,-88,30,-89,30,30,30,-92,30,-93,30,30,-26,30,-82,-83,30,30,30,30,-123,-86,-87,30,30,30,30,-90,-91,30,30,30,30,30,30,30,-98,-99,30,-8,-9,30,30,-102,-103,30,-10,30,30,-106,-107,30,30,-37,-96,-97,30,30,-100,-101,30,30,-104,-105,30,30,30,-109,30,-111,30,-113,-36,-108,-110,-112,]),'PASS':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[32,32,-2,-42,-41,32,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,32,32,-140,-118,-126,32,-133,-137,32,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,32,32,32,-134,-62,32,32,-43,-114,-4,-5,-6,-7,-24,32,-38,32,-40,-58,-57,32,32,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,32,-115,-116,32,32,32,32,32,-27,-28,32,32,-39,32,32,32,32,-141,-94,-135,32,32,32,32,32,32,32,32,32,32,32,32,32,32,-84,32,-85,32,32,-130,-142,-139,32,-88,32,-89,32,32,32,-92,32,-93,32,32,-26,32,-82,-83,32,32,32,32,-123,-86,-87,32,32,32,32,-90,-91,32,32,32,32,32,32,32,-98,-99,32,-8,-9,32,32,-102,-103,32,-10,32,32,-106,-107,32,32,-37,-96,-97,32,32,-100,-101,32,32,-104,-105,32,32,32,-109,32,-111,32,-113,-36,-108,-110,-112,]),'IMPORT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[33,33,-2,-42,-41,33,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,33,33,-140,-118,-126,33,-133,-137,33,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,33,33,33,-134,-62,33,33,-43,-114,-4,-5,-6,-7,-24,33,-38,33,-40,-58,-57,33,33,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,33,-115,-116,33,33,33,33,33,-27,-28,33,33,-39,33,33,33,33,-141,-94,-135,33,33,33,33,33,33,33,33,33,33,33,33,33,33,-84,33,-85,33,33,-130,-142,-139,33,-88,33,-89,33,33,33,-92,33,-93,33,33,-26,33,-82,-83,33,33,33,33,-123,-86,-87,33,33,33,33,-90,-91,33,33,33,33,33,33,33,-98,-99,33,-8,-9,33,33,-102,-103,33,-10,33,33,-106,-107,33,33,-37,-96,-97,33,33,-100,-101,33,33,-104,-105,33,33,33,-109,33,-111,33,-113,-36,-108,-110,-112,]),'CLASS':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,144,148,149,154,157,165,167,171,173,175,177,182,187,189,190,198,199,200,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,238,240,245,247,250,251,253,255,257,259,262,264,267,268,269,270,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,322,323,324,325,327,328,330,331,332,333,335,336,337,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[34,34,-2,-42,-41,34,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,34,34,-140,-118,-126,34,-133,-137,34,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,34,34,34,-134,-62,34,34,-43,-114,-4,-5,-6,-7,-24,34,-38,34,-40,-58,-57,34,34,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,34,-115,-116,34,34,34,34,34,-27,-28,34,34,-39,34,34,34,34,-141,-94,-135,34,34,34,34,34,34,34,34,34,34,34,34,34,34,-84,34,-85,34,34,-130,-142,-139,34,-88,34,-89,34,34,34,-92,34,-93,34,34,-26,34,-82,-83,34,34,34,34,-123,-86,-87,34,34,34,34,-90,-91,34,34,34,34,34,34,34,-98,-99,34,-8,-9,34,34,-102,-103,34,-10,34,34,-106,-107,34,34,-37,-96,-97,34,34,-100,-101,34,34,-104,-105,34,34,34,-109,34,-111,34,-113,-36,-108,-110,-112,]),'LEFT_SQUARE':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,176,177,178,182,183,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[10,10,-2,48,-41,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-136,10,10,10,10,-63,-64,-65,-66,-67,-68,-1,-3,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-134,-18,-21,-22,-25,-23,10,10,10,-140,-118,-126,10,-133,-137,10,-46,10,10,-57,-58,-117,10,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,10,10,10,10,10,10,10,10,10,10,10,10,10,-62,10,10,10,10,10,10,-43,10,-114,10,-4,235,-5,236,-6,243,-7,-24,10,10,-30,-38,10,-40,10,10,-58,-57,10,10,-95,-119,-120,-121,-122,273,-125,-127,-128,-138,10,-115,-116,10,10,10,10,10,10,10,10,-27,10,-28,-29,10,-32,10,10,-39,10,10,10,10,-141,-94,10,-135,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-84,10,-85,10,10,-130,-142,-139,10,10,10,-88,10,-89,10,10,10,-92,10,-93,10,10,-26,-31,10,10,-82,-83,10,10,10,10,-123,-86,-87,10,10,10,10,-90,-91,10,10,10,10,10,10,10,-98,-99,10,-8,-9,10,10,-102,-103,10,-10,10,10,-106,-107,10,10,-37,-96,-97,10,10,-100,-101,10,10,-104,-105,10,10,10,-109,10,-111,10,-113,-36,-108,-110,-112,]),'ID':([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,39,40,41,42,43,44,45,46,47,48,49,52,53,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,114,115,119,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,162,163,164,165,167,168,171,172,173,174,175,177,179,180,181,182,184,185,186,187,189,190,192,193,198,199,200,201,202,203,204,207,209,210,212,215,218,219,220,221,222,223,224,225,226,227,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,261,262,263,264,267,268,269,270,272,273,276,277,278,283,284,285,286,288,290,291,292,293,295,296,298,299,300,303,305,306,307,308,309,310,311,312,314,315,316,317,319,320,322,323,324,325,326,327,328,330,331,332,333,334,335,336,337,338,339,340,341,342,347,348,349,350,351,352,353,355,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,],[4,4,-2,47,-42,50,51,54,57,-41,4,4,4,4,4,85,4,4,88,4,91,92,93,4,4,4,4,4,4,100,4,-136,4,103,4,4,4,-63,-64,-65,-66,-67,-68,-1,-3,4,4,116,118,120,122,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,-134,-18,-21,-22,-25,-23,4,4,4,-140,-118,-126,4,-133,-137,4,-46,4,4,-57,-58,-117,175,177,182,4,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,4,4,4,4,4,4,4,4,4,4,4,4,4,205,205,-62,4,4,205,222,4,4,4,4,230,-43,4,-114,4,-4,-5,205,205,205,-6,205,205,205,-7,-24,4,4,-30,-38,4,-40,4,4,-58,-57,4,265,266,4,-95,-119,-120,-121,-122,-124,-125,-127,-128,274,276,-138,4,-115,-116,4,4,4,4,4,4,4,4,-27,4,-28,-29,4,-32,4,4,-39,301,4,205,4,4,4,-141,-94,311,4,-135,316,4,4,4,4,4,327,4,4,4,4,335,4,4,4,4,4,-84,343,345,4,-85,348,4,4,-130,354,-142,-139,4,4,4,-88,4,-89,361,4,4,4,-92,4,-93,369,4,4,-26,-31,4,4,376,-82,-83,4,4,4,4,384,-123,385,386,-86,-87,4,4,4,4,392,393,-90,-91,4,4,4,4,399,4,401,402,403,4,4,406,-98,-99,4,-8,-9,4,4,410,-102,-103,4,-10,4,4,414,-106,-107,4,4,-37,-96,-97,4,4,-100,-101,4,4,-104,-105,4,4,423,4,-109,4,-111,4,-113,-36,-108,-110,-112,]),'NOT':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[35,35,-2,-42,-41,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-136,35,35,35,35,-63,-64,-65,-66,-67,-68,-1,-3,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-134,-18,-21,-22,-25,-23,35,35,35,-140,-118,-126,35,-133,-137,35,-46,35,35,-57,-58,-117,35,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,35,35,35,35,35,35,35,35,35,35,35,35,35,-62,35,35,35,35,35,35,-43,35,-114,35,-4,-5,-6,-7,-24,35,35,-30,-38,35,-40,35,35,-58,-57,35,35,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,35,-115,-116,35,35,35,35,35,35,35,35,-27,35,-28,-29,35,-32,35,35,-39,35,35,35,35,-141,-94,35,-135,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-84,35,-85,35,35,-130,-142,-139,35,35,35,-88,35,-89,35,35,35,-92,35,-93,35,35,-26,-31,35,35,-82,-83,35,35,35,35,-123,-86,-87,35,35,35,35,-90,-91,35,35,35,35,35,35,35,-98,-99,35,-8,-9,35,35,-102,-103,35,-10,35,35,-106,-107,35,35,-37,-96,-97,35,35,-100,-101,35,35,-104,-105,35,35,35,-109,35,-111,35,-113,-36,-108,-110,-112,]),'MINUS':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,188,189,190,191,192,193,197,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,233,234,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,260,262,264,267,268,269,270,273,276,278,281,283,284,285,286,290,291,292,293,296,297,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,357,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[38,38,-2,-42,72,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-136,38,38,38,38,-63,-64,-65,-66,-67,-68,-1,-3,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-134,-18,72,72,-22,72,-23,72,38,38,153,72,-140,72,72,72,72,72,72,38,72,72,38,72,38,38,-57,-58,72,-117,72,38,72,72,72,72,72,72,72,72,72,-53,-54,-55,-56,-59,-60,72,72,-17,38,38,38,153,38,38,38,38,38,38,38,38,38,-62,38,38,38,38,38,38,-43,38,-114,38,-4,-5,-6,72,72,72,38,72,38,-30,72,72,38,-40,38,38,-58,-57,38,38,-95,-119,-120,-121,-122,-124,72,72,-128,-138,38,-115,-116,72,72,38,38,38,38,38,38,38,38,-27,38,-28,-29,38,-32,38,38,-39,72,38,38,38,38,-141,-94,38,-135,38,72,38,38,38,38,38,38,38,38,38,72,38,38,153,38,-84,38,-85,38,38,-130,-142,-139,38,38,38,-88,38,-89,38,38,38,-92,38,-93,38,38,-26,-31,38,38,-82,-83,38,38,38,38,-123,72,-86,-87,38,38,38,38,-90,-91,38,38,38,38,153,38,38,-98,-99,38,-8,-9,38,38,-102,-103,38,-10,38,38,-106,-107,38,38,-37,-96,-97,38,38,-100,-101,38,38,-104,-105,38,38,38,-109,38,-111,38,-113,-36,-108,-110,-112,]),'PLUS':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,188,189,190,191,192,193,197,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,233,234,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,260,262,264,267,268,269,270,273,276,278,281,283,284,285,286,290,291,292,293,296,297,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,357,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[39,39,-2,-42,71,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,-136,39,39,39,39,-63,-64,-65,-66,-67,-68,-1,-3,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,-134,-18,71,71,-22,71,-23,71,39,39,152,71,-140,71,71,71,71,71,71,39,71,71,39,71,39,39,-57,-58,71,-117,71,39,71,71,71,71,71,71,71,71,71,-53,-54,-55,-56,-59,-60,71,71,-17,39,39,39,152,39,39,39,39,39,39,39,39,39,-62,39,39,39,39,39,39,-43,39,-114,39,-4,-5,-6,71,71,71,39,71,39,-30,71,71,39,-40,39,39,-58,-57,39,39,-95,-119,-120,-121,-122,-124,71,71,-128,-138,39,-115,-116,71,71,39,39,39,39,39,39,39,39,-27,39,-28,-29,39,-32,39,39,-39,71,39,39,39,39,-141,-94,39,-135,39,71,39,39,39,39,39,39,39,39,39,71,39,39,152,39,-84,39,-85,39,39,-130,-142,-139,39,39,39,-88,39,-89,39,39,39,-92,39,-93,39,39,-26,-31,39,39,-82,-83,39,39,39,39,-123,71,-86,-87,39,39,39,39,-90,-91,39,39,39,39,152,39,39,-98,-99,39,-8,-9,39,39,-102,-103,39,-10,39,39,-106,-107,39,39,-37,-96,-97,39,39,-100,-101,39,39,-104,-105,39,39,39,-109,39,-111,39,-113,-36,-108,-110,-112,]),'LEFT_PAREN':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,88,89,91,92,93,94,98,100,101,102,103,104,105,106,107,108,112,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,166,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[20,20,-2,49,-41,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-136,20,20,105,106,20,20,-63,-64,-65,-66,-67,-68,-1,-3,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-134,-18,-21,-22,-25,-23,20,20,20,155,156,158,159,160,-118,-126,20,-133,-137,20,-46,20,20,-57,-58,-117,179,180,181,184,185,186,20,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,20,20,20,20,20,20,20,20,201,202,20,20,20,-62,20,20,20,20,20,226,20,-43,20,-114,20,-4,-5,-6,-7,-24,20,20,-30,-38,20,-40,20,20,-58,-57,20,20,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,20,-115,-116,20,20,20,20,20,20,20,20,-27,20,-28,-29,20,-32,20,20,-39,20,20,20,20,-141,-94,20,-135,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-84,20,-85,20,20,-130,-142,-139,20,20,20,-88,20,-89,20,20,20,-92,20,-93,20,20,-26,-31,20,20,-82,-83,20,20,20,20,-123,-86,-87,20,20,20,20,-90,-91,20,20,20,20,20,20,20,-98,-99,20,-8,-9,20,20,-102,-103,20,-10,20,20,-106,-107,20,20,-37,-96,-97,20,20,-100,-101,20,20,-104,-105,20,20,20,-109,20,-111,20,-113,-36,-108,-110,-112,]),'DATE':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[40,40,-2,-42,-41,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-136,40,40,40,40,-63,-64,-65,-66,-67,-68,-1,-3,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-134,-18,-21,-22,-25,-23,40,40,40,-140,-118,-126,40,-133,-137,40,-46,40,40,-57,-58,-117,40,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,40,40,40,40,40,40,40,40,40,40,40,40,40,-62,40,40,40,40,40,40,-43,40,-114,40,-4,-5,-6,-7,-24,40,40,-30,-38,40,-40,40,40,-58,-57,40,40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,40,-115,-116,40,40,40,40,40,40,40,40,-27,40,-28,-29,40,-32,40,40,-39,40,40,40,40,-141,-94,40,-135,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-84,40,-85,40,40,-130,-142,-139,40,40,40,-88,40,-89,40,40,40,-92,40,-93,40,40,-26,-31,40,40,-82,-83,40,40,40,40,-123,-86,-87,40,40,40,40,-90,-91,40,40,40,40,40,40,40,-98,-99,40,-8,-9,40,40,-102,-103,40,-10,40,40,-106,-107,40,40,-37,-96,-97,40,40,-100,-101,40,40,-104,-105,40,40,40,-109,40,-111,40,-113,-36,-108,-110,-112,]),'BOOLEAN':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[41,41,-2,-42,-41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-136,41,41,41,41,-63,-64,-65,-66,-67,-68,-1,-3,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-134,-18,-21,-22,-25,-23,41,41,41,-140,-118,-126,41,-133,-137,41,-46,41,41,-57,-58,-117,41,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,41,41,41,41,41,41,41,41,41,41,41,41,41,-62,41,41,41,41,41,41,-43,41,-114,41,-4,-5,-6,-7,-24,41,41,-30,-38,41,-40,41,41,-58,-57,41,41,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,41,-115,-116,41,41,41,41,41,41,41,41,-27,41,-28,-29,41,-32,41,41,-39,41,41,41,41,-141,-94,41,-135,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-84,41,-85,41,41,-130,-142,-139,41,41,41,-88,41,-89,41,41,41,-92,41,-93,41,41,-26,-31,41,41,-82,-83,41,41,41,41,-123,-86,-87,41,41,41,41,-90,-91,41,41,41,41,41,41,41,-98,-99,41,-8,-9,41,41,-102,-103,41,-10,41,41,-106,-107,41,41,-37,-96,-97,41,41,-100,-101,41,41,-104,-105,41,41,41,-109,41,-111,41,-113,-36,-108,-110,-112,]),'CHAR':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[42,42,-2,-42,-41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-136,42,42,42,42,-63,-64,-65,-66,-67,-68,-1,-3,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-134,-18,-21,-22,-25,-23,42,42,42,-140,-118,-126,42,-133,-137,42,-46,42,42,-57,-58,-117,42,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,42,42,42,42,42,42,42,42,42,42,42,42,42,-62,42,42,42,42,42,42,-43,42,-114,42,-4,-5,-6,-7,-24,42,42,-30,-38,42,-40,42,42,-58,-57,42,42,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,42,-115,-116,42,42,42,42,42,42,42,42,-27,42,-28,-29,42,-32,42,42,-39,42,42,42,42,-141,-94,42,-135,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-84,42,-85,42,42,-130,-142,-139,42,42,42,-88,42,-89,42,42,42,-92,42,-93,42,42,-26,-31,42,42,-82,-83,42,42,42,42,-123,-86,-87,42,42,42,42,-90,-91,42,42,42,42,42,42,42,-98,-99,42,-8,-9,42,42,-102,-103,42,-10,42,42,-106,-107,42,42,-37,-96,-97,42,42,-100,-101,42,42,-104,-105,42,42,42,-109,42,-111,42,-113,-36,-108,-110,-112,]),'STRING':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[43,43,-2,-42,-41,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-136,43,43,43,43,-63,-64,-65,-66,-67,-68,-1,-3,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-134,-18,-21,-22,-25,-23,43,43,43,-140,-118,-126,43,-133,-137,43,-46,43,43,-57,-58,-117,43,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,43,43,43,43,43,43,43,43,43,43,43,43,43,-62,43,43,43,43,43,43,-43,43,-114,43,-4,-5,-6,-7,-24,43,43,-30,-38,43,-40,43,43,-58,-57,43,43,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,43,-115,-116,43,43,43,43,43,43,43,43,-27,43,-28,-29,43,-32,43,43,-39,43,43,43,43,-141,-94,43,-135,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-84,43,-85,43,43,-130,-142,-139,43,43,43,-88,43,-89,43,43,43,-92,43,-93,43,43,-26,-31,43,43,-82,-83,43,43,43,43,-123,-86,-87,43,43,43,43,-90,-91,43,43,43,43,43,43,43,-98,-99,43,-8,-9,43,43,-102,-103,43,-10,43,43,-106,-107,43,43,-37,-96,-97,43,43,-100,-101,43,43,-104,-105,43,43,43,-109,43,-111,43,-113,-36,-108,-110,-112,]),'REAL':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[44,44,-2,-42,-41,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-136,44,44,44,44,-63,-64,-65,-66,-67,-68,-1,-3,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-134,-18,-21,-22,-25,-23,44,44,44,-140,-118,-126,44,-133,-137,44,-46,44,44,-57,-58,-117,44,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,44,44,44,44,44,44,44,44,44,44,44,44,44,-62,44,44,44,44,44,44,-43,44,-114,44,-4,-5,-6,-7,-24,44,44,-30,-38,44,-40,44,44,-58,-57,44,44,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,44,-115,-116,44,44,44,44,44,44,44,44,-27,44,-28,-29,44,-32,44,44,-39,44,44,44,44,-141,-94,44,-135,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-84,44,-85,44,44,-130,-142,-139,44,44,44,-88,44,-89,44,44,44,-92,44,-93,44,44,-26,-31,44,44,-82,-83,44,44,44,44,-123,-86,-87,44,44,44,44,-90,-91,44,44,44,44,44,44,44,-98,-99,44,-8,-9,44,44,-102,-103,44,-10,44,44,-106,-107,44,44,-37,-96,-97,44,44,-100,-101,44,44,-104,-105,44,44,44,-109,44,-111,44,-113,-36,-108,-110,-112,]),'INTEGER':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[45,45,-2,-42,-41,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-136,45,45,45,45,-63,-64,-65,-66,-67,-68,-1,-3,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-134,-18,-21,-22,-25,-23,45,45,45,-140,-118,-126,45,-133,-137,45,-46,45,45,-57,-58,-117,45,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,45,45,45,45,45,45,45,45,45,45,45,45,45,-62,45,45,45,45,45,45,-43,45,-114,45,-4,-5,-6,-7,-24,45,45,-30,-38,45,-40,45,45,-58,-57,45,45,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,45,-115,-116,45,45,45,45,45,45,45,45,-27,45,-28,-29,45,-32,45,45,-39,45,45,45,45,-141,-94,45,-135,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-84,45,-85,45,45,-130,-142,-139,45,45,45,-88,45,-89,45,45,45,-92,45,-93,45,45,-26,-31,45,45,-82,-83,45,45,45,45,-123,-86,-87,45,45,45,45,-90,-91,45,45,45,45,45,45,45,-98,-99,45,-8,-9,45,45,-102,-103,45,-10,45,45,-106,-107,45,45,-37,-96,-97,45,45,-100,-101,45,45,-104,-105,45,45,45,-109,45,-111,45,-113,-36,-108,-110,-112,]),'MOD':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,188,189,190,191,192,193,197,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,233,234,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,260,262,264,267,268,269,270,273,276,278,281,283,284,285,286,290,291,292,293,296,297,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,357,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[36,36,-2,-42,67,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-136,36,36,36,36,-63,-64,-65,-66,-67,-68,-1,-3,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-134,-18,67,67,-22,67,-23,67,36,36,150,67,-140,67,67,67,67,67,67,36,67,67,36,67,36,36,-57,-58,67,-117,67,36,67,67,67,67,67,67,67,67,67,-53,-54,-55,-56,67,67,67,67,-17,36,36,36,150,36,36,36,36,36,36,36,36,36,-62,36,36,36,36,36,36,-43,36,-114,36,-4,-5,-6,67,67,67,36,67,36,-30,67,67,36,-40,36,36,-58,-57,36,36,-95,-119,-120,-121,-122,-124,67,67,-128,-138,36,-115,-116,67,67,36,36,36,36,36,36,36,36,-27,36,-28,-29,36,-32,36,36,-39,67,36,36,36,36,-141,-94,36,-135,36,67,36,36,36,36,36,36,36,36,36,67,36,36,150,36,-84,36,-85,36,36,-130,-142,-139,36,36,36,-88,36,-89,36,36,36,-92,36,-93,36,36,-26,-31,36,36,-82,-83,36,36,36,36,-123,67,-86,-87,36,36,36,36,-90,-91,36,36,36,36,150,36,36,-98,-99,36,-8,-9,36,36,-102,-103,36,-10,36,36,-106,-107,36,36,-37,-96,-97,36,36,-100,-101,36,36,-104,-105,36,36,36,-109,36,-111,36,-113,-36,-108,-110,-112,]),'DIV':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,188,189,190,191,192,193,197,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,233,234,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,260,262,264,267,268,269,270,273,276,278,281,283,284,285,286,290,291,292,293,296,297,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,357,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[37,37,-2,-42,68,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-136,37,37,37,37,-63,-64,-65,-66,-67,-68,-1,-3,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-134,-18,68,68,-22,68,-23,68,37,37,151,68,-140,68,68,68,68,68,68,37,68,68,37,68,37,37,-57,-58,68,-117,68,37,68,68,68,68,68,68,68,68,68,-53,-54,-55,-56,68,68,68,68,-17,37,37,37,151,37,37,37,37,37,37,37,37,37,-62,37,37,37,37,37,37,-43,37,-114,37,-4,-5,-6,68,68,68,37,68,37,-30,68,68,37,-40,37,37,-58,-57,37,37,-95,-119,-120,-121,-122,-124,68,68,-128,-138,37,-115,-116,68,68,37,37,37,37,37,37,37,37,-27,37,-28,-29,37,-32,37,37,-39,68,37,37,37,37,-141,-94,37,-135,37,68,37,37,37,37,37,37,37,37,37,68,37,37,151,37,-84,37,-85,37,37,-130,-142,-139,37,37,37,-88,37,-89,37,37,37,-92,37,-93,37,37,-26,-31,37,37,-82,-83,37,37,37,37,-123,68,-86,-87,37,37,37,37,-90,-91,37,37,37,37,151,37,37,-98,-99,37,-8,-9,37,37,-102,-103,37,-10,37,37,-106,-107,37,37,-37,-96,-97,37,37,-100,-101,37,37,-104,-105,37,37,37,-109,37,-111,37,-113,-36,-108,-110,-112,]),'POINTER':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,166,167,171,172,173,174,175,177,182,187,188,189,190,191,192,193,197,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,233,234,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,260,262,264,267,268,269,270,273,276,278,281,283,284,285,286,290,291,292,293,296,297,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,357,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[31,31,-2,-42,75,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,-136,31,31,31,31,-63,-64,-65,-66,-67,-68,-1,-3,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,-134,-18,75,75,-22,75,-23,75,31,31,154,75,-140,75,75,75,75,75,75,31,75,75,31,-46,31,31,-57,-58,75,-117,75,31,75,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,75,75,-17,31,31,31,154,31,31,31,31,31,31,31,31,31,-62,31,31,31,31,31,227,31,-43,31,-114,31,-4,-5,-6,-7,75,75,31,75,31,-30,75,75,31,-40,31,31,-58,-57,31,31,-95,-119,-120,-121,-122,-124,75,75,-128,-138,31,-115,-116,75,75,31,31,31,31,31,31,31,31,-27,31,-28,-29,31,-32,31,31,-39,75,31,31,31,31,-141,-94,31,-135,31,75,31,31,31,31,31,31,31,31,31,75,31,31,154,31,-84,31,-85,31,31,-130,-142,-139,31,31,31,-88,31,-89,31,31,31,-92,31,-93,31,31,-26,-31,31,31,-82,-83,31,31,31,31,-123,75,-86,-87,31,31,31,31,-90,-91,31,31,31,31,154,31,31,-98,-99,31,-8,-9,31,31,-102,-103,31,-10,31,31,-106,-107,31,31,-37,-96,-97,31,31,-100,-101,31,31,-104,-105,31,31,31,-109,31,-111,31,-113,-36,-108,-110,-112,]),'NEW':([0,1,2,4,9,10,11,12,13,14,17,18,19,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,52,55,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,157,158,159,163,164,165,167,171,172,173,174,175,177,182,187,189,190,192,193,198,199,200,201,202,203,204,207,212,215,218,219,220,221,222,223,224,225,229,230,231,232,235,236,238,240,243,245,247,250,251,252,253,254,255,256,257,258,259,262,264,267,268,269,270,273,276,278,283,284,285,286,290,291,292,293,296,298,299,300,303,305,308,309,311,312,314,316,317,319,320,322,323,324,325,327,328,330,331,332,333,335,336,337,338,339,340,342,347,348,349,350,351,353,359,360,361,362,363,364,367,368,369,370,371,372,374,379,380,382,383,384,385,386,387,388,390,391,392,393,394,395,397,398,399,400,401,404,405,406,407,408,409,410,411,412,413,414,415,417,418,419,420,421,422,423,424,425,426,],[21,21,-2,-42,-41,21,21,21,21,21,21,21,89,21,21,21,21,21,21,21,21,-136,21,21,21,21,-63,-64,-65,-66,-67,-68,-1,-3,21,21,117,121,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,-134,-18,-21,-22,-25,-23,21,21,21,-140,-118,-126,21,-133,-137,21,-46,21,21,-57,-58,-117,21,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,21,21,21,21,21,21,21,21,21,21,21,21,21,-62,21,21,21,21,21,21,-43,21,-114,21,-4,-5,-6,-7,-24,21,21,-30,-38,21,-40,21,21,-58,-57,21,21,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,21,-115,-116,21,21,21,21,21,21,21,21,-27,21,-28,-29,21,-32,21,21,-39,21,21,21,21,-141,-94,21,-135,21,21,21,21,21,21,21,21,21,21,21,21,21,21,-84,21,-85,21,21,-130,-142,-139,21,21,21,-88,21,-89,21,21,21,-92,21,-93,21,21,-26,-31,21,21,-82,-83,21,21,21,21,-123,-86,-87,21,21,21,21,-90,-91,21,21,21,21,21,21,21,-98,-99,21,-8,-9,21,21,-102,-103,21,-10,21,21,-106,-107,21,21,-37,-96,-97,21,21,-100,-101,21,21,-104,-105,21,21,21,-109,21,-111,21,-113,-36,-108,-110,-112,]),'$end':([1,2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[0,-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'UNTIL':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,147,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ENDWHILE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,149,157,171,173,175,177,182,187,189,198,199,200,203,204,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,200,-62,-43,-114,-4,-5,-6,-7,-24,-38,259,-40,-58,-57,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ENDTYPE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,165,171,173,175,177,182,187,189,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,225,-43,-114,-4,-5,-6,-7,-24,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ENDCLASS':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,167,171,173,175,177,182,187,189,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,278,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,229,-43,-114,-4,-5,-6,-7,-24,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,317,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ELSE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,190,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,250,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ENDIF':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,190,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,296,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,251,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,337,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ENDPROCEDURE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,264,268,269,270,276,284,286,291,293,303,305,308,309,314,316,317,322,323,324,325,330,331,332,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,305,309,-141,-94,-135,323,325,331,333,342,-84,347,-85,-130,-142,-139,359,-88,360,-89,367,-92,368,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'SEMICOLON':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,195,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,298,299,305,309,314,316,317,323,325,331,333,337,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,256,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,338,-35,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'NEXT':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,198,200,203,204,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,340,342,347,353,359,360,367,368,382,383,385,386,390,391,393,397,398,400,401,404,405,408,409,412,413,418,420,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,-38,-40,-58,-57,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,375,-82,-83,-123,-86,-87,-90,-91,-98,-99,-8,-9,-102,-103,-10,-106,-107,416,-37,-96,-97,-100,-101,-104,-105,-109,-111,-113,-36,-108,-110,-112,]),'ENDFUNCTION':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,175,177,182,187,189,198,200,215,218,219,220,221,222,223,224,225,229,231,232,251,253,259,269,270,276,305,309,314,316,317,323,325,331,333,337,342,347,350,351,353,359,360,363,364,367,368,371,372,379,380,382,383,385,386,387,388,390,391,393,394,395,397,398,401,404,405,407,408,409,411,412,413,415,417,418,419,420,421,422,423,424,425,426,],[-2,-42,-41,-136,-63,-64,-65,-66,-67,-68,-1,-3,-134,-18,-21,-22,-25,-23,-140,-118,-126,-133,-137,-46,-57,-58,-117,-14,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-4,-5,-6,-7,-24,-38,-40,-95,-119,-120,-121,-122,-124,-125,-127,-128,-138,-115,-116,-27,-28,-39,-141,-94,-135,-84,-85,-130,-142,-139,-88,-89,-92,-93,-26,-82,-83,382,383,-123,-86,-87,390,391,-90,-91,397,398,404,405,-98,-99,-8,-9,408,409,-102,-103,-10,412,413,-106,-107,-37,-96,-97,418,-100,-101,420,-104,-105,422,424,-109,425,-111,426,-113,-36,-108,-110,-112,]),'ASSIGN':([4,9,40,41,42,43,44,45,75,77,85,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,203,204,231,232,269,],[-42,58,-63,-64,-65,-66,-67,-68,-134,-18,146,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-58,-57,-115,-116,-141,]),'OR':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,59,-63,-64,-65,-66,-67,-68,-134,-18,59,59,59,59,59,59,-140,59,59,59,59,59,59,59,59,-46,-57,-58,59,-117,59,59,-44,59,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,59,59,-17,59,-134,-62,-43,-114,59,59,59,59,59,59,-58,-57,59,59,-115,-116,59,59,59,-141,59,59,59,59,59,]),'AND':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,60,-63,-64,-65,-66,-67,-68,-134,-18,60,60,60,60,60,60,-140,60,60,60,60,60,60,60,60,-46,-57,-58,60,-117,60,60,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,60,60,-17,60,-134,-62,-43,-114,60,60,60,60,60,60,-58,-57,60,60,-115,-116,60,60,60,-141,60,60,60,60,60,]),'EQUAL':([4,9,40,41,42,43,44,45,57,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,100,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,61,-63,-64,-65,-66,-67,-68,123,-134,-18,61,61,61,61,61,61,-140,61,61,61,61,61,61,166,61,61,61,-57,-58,61,-117,61,61,61,61,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,61,61,-17,61,-134,-62,-43,-114,61,61,61,61,61,61,-58,-57,61,61,-115,-116,61,61,61,-141,61,61,61,61,61,]),'NOT_EQUAL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,62,-63,-64,-65,-66,-67,-68,-134,-18,62,62,62,62,62,62,-140,62,62,62,62,62,62,62,62,62,-57,-58,62,-117,62,62,62,62,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,62,62,-17,62,-134,-62,-43,-114,62,62,62,62,62,62,-58,-57,62,62,-115,-116,62,62,62,-141,62,62,62,62,62,]),'LESS':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,63,-63,-64,-65,-66,-67,-68,-134,-18,63,63,63,63,63,63,-140,63,63,63,63,63,63,63,63,63,-57,-58,63,-117,63,63,63,63,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,63,63,-17,63,-134,-62,-43,-114,63,63,63,63,63,63,-58,-57,63,63,-115,-116,63,63,63,-141,63,63,63,63,63,]),'GREATER':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,64,-63,-64,-65,-66,-67,-68,-134,-18,64,64,64,64,64,64,-140,64,64,64,64,64,64,64,64,64,-57,-58,64,-117,64,64,64,64,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,64,64,-17,64,-134,-62,-43,-114,64,64,64,64,64,64,-58,-57,64,64,-115,-116,64,64,64,-141,64,64,64,64,64,]),'LESS_EQUAL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,65,-63,-64,-65,-66,-67,-68,-134,-18,65,65,65,65,65,65,-140,65,65,65,65,65,65,65,65,65,-57,-58,65,-117,65,65,65,65,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,65,65,-17,65,-134,-62,-43,-114,65,65,65,65,65,65,-58,-57,65,65,-115,-116,65,65,65,-141,65,65,65,65,65,]),'GREATER_EQUAL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,66,-63,-64,-65,-66,-67,-68,-134,-18,66,66,66,66,66,66,-140,66,66,66,66,66,66,66,66,66,-57,-58,66,-117,66,66,66,66,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,66,66,-17,66,-134,-62,-43,-114,66,66,66,66,66,66,-58,-57,66,66,-115,-116,66,66,66,-141,66,66,66,66,66,]),'MUL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,69,-63,-64,-65,-66,-67,-68,-134,-18,69,69,69,69,69,69,-140,69,69,69,69,69,69,69,69,69,-57,-58,69,-117,69,69,69,69,69,69,69,69,69,69,-53,-54,-55,-56,69,69,69,69,-17,69,-134,-62,-43,-114,69,69,69,69,69,69,-58,-57,69,69,-115,-116,69,69,69,-141,69,69,69,69,69,]),'N_DIV':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,70,-63,-64,-65,-66,-67,-68,-134,-18,70,70,70,70,70,70,-140,70,70,70,70,70,70,70,70,70,-57,-58,70,-117,70,70,70,70,70,70,70,70,70,70,-53,-54,-55,-56,70,70,70,70,-17,70,-134,-62,-43,-114,70,70,70,70,70,70,-58,-57,70,70,-115,-116,70,70,70,-141,70,70,70,70,70,]),'CONNECT':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,73,-63,-64,-65,-66,-67,-68,-134,-18,73,73,73,73,73,73,-140,73,73,73,73,73,73,73,73,-46,-57,-58,73,-117,73,73,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,73,73,-17,73,-134,-62,-43,-114,73,73,73,73,73,73,-58,-57,73,73,-115,-116,73,73,73,-141,73,73,73,73,73,]),'DOT':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,187,188,189,191,197,198,203,204,223,224,231,232,233,234,260,269,281,297,300,357,374,],[-42,74,-63,-64,-65,-66,-67,-68,-134,-18,74,74,74,74,74,74,-140,74,74,74,74,74,74,74,74,-46,-57,-58,74,-117,74,74,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,74,74,-17,74,-134,-62,-43,-114,74,74,74,74,74,74,-58,-57,74,74,-115,-116,74,74,74,-141,74,74,74,74,74,]),'RIGHT_SQUARE':([4,10,40,41,42,43,44,45,75,76,77,78,91,101,104,107,108,109,110,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,188,231,232,233,269,279,280,282,289,313,356,357,],[-42,77,-63,-64,-65,-66,-67,-68,-134,141,-18,-20,-140,-133,-46,-57,-58,171,-16,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-19,-115,-116,-15,-141,318,-12,321,329,353,-11,-13,]),'COMMA':([4,40,41,42,43,44,45,75,76,77,78,80,81,82,91,96,97,99,101,104,107,108,109,110,111,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,169,170,171,173,188,189,206,208,211,213,214,216,231,232,233,234,237,239,241,244,246,248,260,269,274,275,279,280,282,289,301,302,304,313,343,344,345,346,354,356,357,376,402,403,],[-42,-63,-64,-65,-66,-67,-68,-134,142,-18,-20,143,-25,143,-140,162,163,164,-133,-46,-57,-58,172,-16,174,-117,-81,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,174,174,-43,-114,-19,-24,263,-70,263,174,174,263,-115,-116,-15,-80,263,263,263,263,263,263,-81,-141,-132,315,319,-12,319,319,-71,-72,-69,172,-73,-74,-75,-76,-131,-11,-13,-77,-78,-79,]),'THEN':([4,40,41,42,43,44,45,75,77,83,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,231,232,269,],[-42,-63,-64,-65,-66,-67,-68,-134,-18,144,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-115,-116,-141,]),'DO':([4,40,41,42,43,44,45,75,77,87,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,154,157,171,173,203,204,231,232,269,],[-42,-63,-64,-65,-66,-67,-68,-134,-18,148,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-134,-62,-43,-114,-59,-60,-115,-116,-141,]),'RIGHT_PAREN':([4,40,41,42,43,44,45,49,75,77,90,91,101,104,107,108,111,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,155,156,157,159,160,169,170,171,173,179,180,181,184,185,186,206,208,211,213,214,216,231,232,234,237,239,241,244,246,248,260,269,274,275,301,302,304,343,344,345,346,354,376,402,403,],[-42,-63,-64,-65,-66,-67,-68,112,-134,-18,157,-140,-133,-46,-57,-58,173,-117,-81,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,207,212,-62,215,217,231,232,-43,-114,238,240,242,245,247,249,262,-70,267,269,270,271,-115,-116,-80,283,285,287,290,292,294,157,-141,-132,314,-71,-72,-69,-73,-74,-75,-76,-131,-77,-78,-79,]),'OTHERWISE':([4,40,41,42,43,44,45,75,77,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,145,154,157,171,173,192,193,203,204,231,232,254,256,269,338,],[-42,-63,-64,-65,-66,-67,-68,-134,-18,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,196,-134,-62,-43,-114,196,-30,-59,-60,-115,-116,-29,-32,-141,-31,]),'TO':([4,40,41,42,43,44,45,75,77,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,191,197,203,204,231,232,269,],[-42,-63,-64,-65,-66,-67,-68,-134,-18,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,252,258,-58,-57,-115,-116,-141,]),'COLON':([4,40,41,42,43,44,45,50,51,54,75,77,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,157,171,173,191,194,196,203,204,205,231,232,265,266,269,281,297,],[-42,-63,-64,-65,-66,-67,-68,114,115,119,-134,-18,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-62,-43,-114,-34,255,257,-58,-57,261,-115,-116,306,307,-141,320,-33,]),'STEP':([4,40,41,42,43,44,45,75,77,91,101,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,154,157,171,173,203,204,231,232,269,300,],[-42,-63,-64,-65,-66,-67,-68,-134,-18,-140,-133,-46,-57,-58,-117,-44,-45,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-59,-60,-61,-129,-17,-134,-62,-43,-114,-59,-60,-115,-116,-141,339,]),'OF':([15,228,302,312,318,321,328,329,336,344,346,349,362,370,],[84,277,341,352,355,358,365,366,373,377,378,381,389,396,]),'INHERITS':([103,],[168,]),'ARRAY':([114,115,119,261,272,288,295,306,307,310,326,334,],[176,178,183,302,312,328,336,344,346,349,362,370,]),'BYREF':([155,156,160,179,180,181,184,185,186,263,],[209,209,209,209,209,209,209,209,209,209,]),'BYVAL':([155,156,160,179,180,181,184,185,186,263,],[210,210,210,210,210,210,210,210,210,210,]),'READ':([161,],[218,]),'WRITE':([161,],[219,]),'APPEND':([161,],[220,]),'RANDOM':([161,],[221,]),'SET':([166,],[228,]),'ENDCASE':([192,193,254,256,338,],[253,-30,-29,-32,-31,]),'RETURNS':([217,242,249,271,287,294,],[272,288,295,310,326,334,]),} +_lr_action_items = {'DELETE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[3,3,-2,-43,-42,3,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,3,3,-141,-119,-127,3,-134,-138,3,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,3,3,3,-135,-63,3,3,-44,-115,-4,-5,-6,-7,-8,-25,3,-39,3,-41,-59,-58,3,3,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,3,-116,-117,3,3,3,3,3,-28,-29,3,3,-40,3,3,3,3,-142,-95,-136,3,3,3,3,3,3,3,3,3,3,3,3,3,3,-85,3,-86,3,3,-131,-143,-140,3,-89,3,-90,3,3,3,-93,3,-94,3,3,-27,3,-83,-84,3,3,3,3,-124,-87,-88,3,3,3,3,-91,-92,3,3,3,3,3,3,3,-99,-100,3,-9,-10,3,3,-103,-104,3,-11,3,3,-107,-108,3,3,-38,-97,-98,3,3,-101,-102,3,3,-105,-106,3,3,3,-110,3,-112,3,-114,-37,-109,-111,-113,]),'DECLARE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[5,5,-2,-43,-42,5,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,5,5,-141,-119,-127,5,-134,-138,5,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,5,5,5,-135,-63,5,5,-44,-115,-4,-5,-6,-7,-8,-25,5,-39,5,-41,-59,-58,5,5,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,5,-116,-117,5,5,5,5,5,-28,-29,5,5,-40,5,5,5,5,-142,-95,-136,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-85,5,-86,5,5,-131,-143,-140,5,-89,5,-90,5,5,5,-93,5,-94,5,5,-27,5,-83,-84,5,5,5,5,-124,-87,-88,5,5,5,5,-91,-92,5,5,5,5,5,5,5,-99,-100,5,-9,-10,5,5,-103,-104,5,-11,5,5,-107,-108,5,5,-38,-97,-98,5,5,-101,-102,5,5,-105,-106,5,5,5,-110,5,-112,5,-114,-37,-109,-111,-113,]),'PUBLIC':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[6,6,-2,-43,-42,6,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,6,6,-141,-119,-127,6,-134,-138,6,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,6,6,6,-135,-63,6,6,-44,-115,-4,-5,-6,-7,-8,-25,6,-39,6,-41,-59,-58,6,6,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,6,-116,-117,6,6,6,6,6,-28,-29,6,6,-40,6,6,6,6,-142,-95,-136,6,6,6,6,6,6,6,6,6,6,6,6,6,6,-85,6,-86,6,6,-131,-143,-140,6,-89,6,-90,6,6,6,-93,6,-94,6,6,-27,6,-83,-84,6,6,6,6,-124,-87,-88,6,6,6,6,-91,-92,6,6,6,6,6,6,6,-99,-100,6,-9,-10,6,6,-103,-104,6,-11,6,6,-107,-108,6,6,-38,-97,-98,6,6,-101,-102,6,6,-105,-106,6,6,6,-110,6,-112,6,-114,-37,-109,-111,-113,]),'PRIVATE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[7,7,-2,-43,-42,7,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,7,7,-141,-119,-127,7,-134,-138,7,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,7,7,7,-135,-63,7,7,-44,-115,-4,-5,-6,-7,-8,-25,7,-39,7,-41,-59,-58,7,7,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,7,-116,-117,7,7,7,7,7,-28,-29,7,7,-40,7,7,7,7,-142,-95,-136,7,7,7,7,7,7,7,7,7,7,7,7,7,7,-85,7,-86,7,7,-131,-143,-140,7,-89,7,-90,7,7,7,-93,7,-94,7,7,-27,7,-83,-84,7,7,7,7,-124,-87,-88,7,7,7,7,-91,-92,7,7,7,7,7,7,7,-99,-100,7,-9,-10,7,7,-103,-104,7,-11,7,7,-107,-108,7,7,-38,-97,-98,7,7,-101,-102,7,7,-105,-106,7,7,7,-110,7,-112,7,-114,-37,-109,-111,-113,]),'CONSTANT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[8,8,-2,-43,-42,8,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,8,8,-141,-119,-127,8,-134,-138,8,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,8,8,8,-135,-63,8,8,-44,-115,-4,-5,-6,-7,-8,-25,8,-39,8,-41,-59,-58,8,8,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,8,-116,-117,8,8,8,8,8,-28,-29,8,8,-40,8,8,8,8,-142,-95,-136,8,8,8,8,8,8,8,8,8,8,8,8,8,8,-85,8,-86,8,8,-131,-143,-140,8,-89,8,-90,8,8,8,-93,8,-94,8,8,-27,8,-83,-84,8,8,8,8,-124,-87,-88,8,8,8,8,-91,-92,8,8,8,8,8,8,8,-99,-100,8,-9,-10,8,8,-103,-104,8,-11,8,8,-107,-108,8,8,-38,-97,-98,8,8,-101,-102,8,8,-105,-106,8,8,8,-110,8,-112,8,-114,-37,-109,-111,-113,]),'INPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[11,11,-2,-43,-42,11,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,11,11,-141,-119,-127,11,-134,-138,11,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,11,11,11,-135,-63,11,11,-44,-115,-4,-5,-6,-7,-8,-25,11,-39,11,-41,-59,-58,11,11,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,11,-116,-117,11,11,11,11,11,-28,-29,11,11,-40,11,11,11,11,-142,-95,-136,11,11,11,11,11,11,11,11,11,11,11,11,11,11,-85,11,-86,11,11,-131,-143,-140,11,-89,11,-90,11,11,11,-93,11,-94,11,11,-27,11,-83,-84,11,11,11,11,-124,-87,-88,11,11,11,11,-91,-92,11,11,11,11,11,11,11,-99,-100,11,-9,-10,11,11,-103,-104,11,-11,11,11,-107,-108,11,11,-38,-97,-98,11,11,-101,-102,11,11,-105,-106,11,11,11,-110,11,-112,11,-114,-37,-109,-111,-113,]),'OUTPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[12,12,-2,-43,-42,12,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,12,12,-141,-119,-127,12,-134,-138,12,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,12,12,12,-135,-63,12,12,-44,-115,-4,-5,-6,-7,-8,-25,12,-39,12,-41,-59,-58,12,12,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,12,-116,-117,12,12,12,12,12,-28,-29,12,12,-40,12,12,12,12,-142,-95,-136,12,12,12,12,12,12,12,12,12,12,12,12,12,12,-85,12,-86,12,12,-131,-143,-140,12,-89,12,-90,12,12,12,-93,12,-94,12,12,-27,12,-83,-84,12,12,12,12,-124,-87,-88,12,12,12,12,-91,-92,12,12,12,12,12,12,12,-99,-100,12,-9,-10,12,12,-103,-104,12,-11,12,12,-107,-108,12,12,-38,-97,-98,12,12,-101,-102,12,12,-105,-106,12,12,12,-110,12,-112,12,-114,-37,-109,-111,-113,]),'_OUTPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[13,13,-2,-43,-42,13,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,13,13,-141,-119,-127,13,-134,-138,13,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,13,13,13,-135,-63,13,13,-44,-115,-4,-5,-6,-7,-8,-25,13,-39,13,-41,-59,-58,13,13,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,13,-116,-117,13,13,13,13,13,-28,-29,13,13,-40,13,13,13,13,-142,-95,-136,13,13,13,13,13,13,13,13,13,13,13,13,13,13,-85,13,-86,13,13,-131,-143,-140,13,-89,13,-90,13,13,13,-93,13,-94,13,13,-27,13,-83,-84,13,13,13,13,-124,-87,-88,13,13,13,13,-91,-92,13,13,13,13,13,13,13,-99,-100,13,-9,-10,13,13,-103,-104,13,-11,13,13,-107,-108,13,13,-38,-97,-98,13,13,-101,-102,13,13,-105,-106,13,13,13,-110,13,-112,13,-114,-37,-109,-111,-113,]),'IF':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[14,14,-2,-43,-42,14,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,14,14,-141,-119,-127,14,-134,-138,14,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,14,14,14,-135,-63,14,14,-44,-115,-4,-5,-6,-7,-8,-25,14,-39,14,-41,-59,-58,14,14,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,14,-116,-117,14,14,14,14,14,-28,-29,14,14,-40,14,14,14,14,-142,-95,-136,14,14,14,14,14,14,14,14,14,14,14,14,14,14,-85,14,-86,14,14,-131,-143,-140,14,-89,14,-90,14,14,14,-93,14,-94,14,14,-27,14,-83,-84,14,14,14,14,-124,-87,-88,14,14,14,14,-91,-92,14,14,14,14,14,14,14,-99,-100,14,-9,-10,14,14,-103,-104,14,-11,14,14,-107,-108,14,14,-38,-97,-98,14,14,-101,-102,14,14,-105,-106,14,14,14,-110,14,-112,14,-114,-37,-109,-111,-113,]),'CASE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[15,15,-2,-43,-42,15,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,15,15,-141,-119,-127,15,-134,-138,15,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,15,15,15,-135,-63,15,15,-44,-115,-4,-5,-6,-7,-8,-25,15,-39,15,-41,-59,-58,15,15,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,15,-116,-117,15,15,15,15,15,-28,-29,15,15,-40,15,15,15,15,-142,-95,-136,15,15,15,15,15,15,15,15,15,15,15,15,15,15,-85,15,-86,15,15,-131,-143,-140,15,-89,15,-90,15,15,15,-93,15,-94,15,15,-27,15,-83,-84,15,15,15,15,-124,-87,-88,15,15,15,15,-91,-92,15,15,15,15,15,15,15,-99,-100,15,-9,-10,15,15,-103,-104,15,-11,15,15,-107,-108,15,15,-38,-97,-98,15,15,-101,-102,15,15,-105,-106,15,15,15,-110,15,-112,15,-114,-37,-109,-111,-113,]),'FOR':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,95,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[16,16,-2,-43,-42,16,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,16,16,-141,-119,162,-127,16,-134,-138,16,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,16,16,16,-135,-63,16,16,-44,-115,-4,-5,-6,-7,-8,-25,16,-39,16,-41,-59,-58,16,16,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,16,-116,-117,16,16,16,16,16,-28,-29,16,16,-40,16,16,16,16,-142,-95,-136,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-85,16,-86,16,16,-131,-143,-140,16,-89,16,-90,16,16,16,-93,16,-94,16,16,-27,16,-83,-84,16,16,16,16,-124,-87,-88,16,16,16,16,-91,-92,16,16,16,16,16,16,16,-99,-100,16,-9,-10,16,16,-103,-104,16,-11,16,16,-107,-108,16,16,-38,-97,-98,16,16,-101,-102,16,16,-105,-106,16,16,16,-110,16,-112,16,-114,-37,-109,-111,-113,]),'REPEAT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[17,17,-2,-43,-42,17,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,17,17,-141,-119,-127,17,-134,-138,17,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,17,17,17,-135,-63,17,17,-44,-115,-4,-5,-6,-7,-8,-25,17,-39,17,-41,-59,-58,17,17,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,17,-116,-117,17,17,17,17,17,-28,-29,17,17,-40,17,17,17,17,-142,-95,-136,17,17,17,17,17,17,17,17,17,17,17,17,17,17,-85,17,-86,17,17,-131,-143,-140,17,-89,17,-90,17,17,17,-93,17,-94,17,17,-27,17,-83,-84,17,17,17,17,-124,-87,-88,17,17,17,17,-91,-92,17,17,17,17,17,17,17,-99,-100,17,-9,-10,17,17,-103,-104,17,-11,17,17,-107,-108,17,17,-38,-97,-98,17,17,-101,-102,17,17,-105,-106,17,17,17,-110,17,-112,17,-114,-37,-109,-111,-113,]),'WHILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[18,18,-2,-43,-42,18,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,18,18,-141,-119,-127,18,-134,-138,18,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,18,18,18,-135,-63,18,18,-44,-115,-4,-5,-6,-7,-8,-25,18,-39,18,-41,-59,-58,18,18,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,18,-116,-117,18,18,18,18,18,-28,-29,18,18,-40,18,18,18,18,-142,-95,-136,18,18,18,18,18,18,18,18,18,18,18,18,18,18,-85,18,-86,18,18,-131,-143,-140,18,-89,18,-90,18,18,18,-93,18,-94,18,18,-27,18,-83,-84,18,18,18,18,-124,-87,-88,18,18,18,18,-91,-92,18,18,18,18,18,18,18,-99,-100,18,-9,-10,18,18,-103,-104,18,-11,18,18,-107,-108,18,18,-38,-97,-98,18,18,-101,-102,18,18,-105,-106,18,18,18,-110,18,-112,18,-114,-37,-109,-111,-113,]),'PROCEDURE':([0,1,2,4,6,7,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[19,19,-2,-43,52,55,-42,19,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,19,19,-141,-119,-127,19,-134,-138,19,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,19,19,19,-135,-63,19,19,-44,-115,-4,-5,-6,-7,-8,-25,19,-39,19,-41,-59,-58,19,19,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,19,-116,-117,19,19,19,19,19,-28,-29,19,19,-40,19,19,19,19,-142,-95,-136,19,19,19,19,19,19,19,19,19,19,19,19,19,19,-85,19,-86,19,19,-131,-143,-140,19,-89,19,-90,19,19,19,-93,19,-94,19,19,-27,19,-83,-84,19,19,19,19,-124,-87,-88,19,19,19,19,-91,-92,19,19,19,19,19,19,19,-99,-100,19,-9,-10,19,19,-103,-104,19,-11,19,19,-107,-108,19,19,-38,-97,-98,19,19,-101,-102,19,19,-105,-106,19,19,19,-110,19,-112,19,-114,-37,-109,-111,-113,]),'CALL':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[22,22,-2,-43,-42,22,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,22,22,-141,-119,-127,22,-134,-138,22,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,22,22,22,-135,-63,22,22,-44,-115,-4,-5,-6,-7,-8,-25,22,-39,22,-41,-59,-58,22,22,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,22,-116,-117,22,22,22,22,22,-28,-29,22,22,-40,22,22,22,22,-142,-95,-136,22,22,22,22,22,22,22,22,22,22,22,22,22,22,-85,22,-86,22,22,-131,-143,-140,22,-89,22,-90,22,22,22,-93,22,-94,22,22,-27,22,-83,-84,22,22,22,22,-124,-87,-88,22,22,22,22,-91,-92,22,22,22,22,22,22,22,-99,-100,22,-9,-10,22,22,-103,-104,22,-11,22,22,-107,-108,22,22,-38,-97,-98,22,22,-101,-102,22,22,-105,-106,22,22,22,-110,22,-112,22,-114,-37,-109,-111,-113,]),'FUNCTION':([0,1,2,4,6,7,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[23,23,-2,-43,53,56,-42,23,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,23,23,-141,-119,-127,23,-134,-138,23,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,23,23,23,-135,-63,23,23,-44,-115,-4,-5,-6,-7,-8,-25,23,-39,23,-41,-59,-58,23,23,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,23,-116,-117,23,23,23,23,23,-28,-29,23,23,-40,23,23,23,23,-142,-95,-136,23,23,23,23,23,23,23,23,23,23,23,23,23,23,-85,23,-86,23,23,-131,-143,-140,23,-89,23,-90,23,23,23,-93,23,-94,23,23,-27,23,-83,-84,23,23,23,23,-124,-87,-88,23,23,23,23,-91,-92,23,23,23,23,23,23,23,-99,-100,23,-9,-10,23,23,-103,-104,23,-11,23,23,-107,-108,23,23,-38,-97,-98,23,23,-101,-102,23,23,-105,-106,23,23,23,-110,23,-112,23,-114,-37,-109,-111,-113,]),'RETURN':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[24,24,-2,-43,-42,24,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,24,24,-141,-119,-127,24,-134,-138,24,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,24,24,24,-135,-63,24,24,-44,-115,-4,-5,-6,-7,-8,-25,24,-39,24,-41,-59,-58,24,24,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,24,-116,-117,24,24,24,24,24,-28,-29,24,24,-40,24,24,24,24,-142,-95,-136,24,24,24,24,24,24,24,24,24,24,24,24,24,24,-85,24,-86,24,24,-131,-143,-140,24,-89,24,-90,24,24,24,-93,24,-94,24,24,-27,24,-83,-84,24,24,24,24,-124,-87,-88,24,24,24,24,-91,-92,24,24,24,24,24,24,24,-99,-100,24,-9,-10,24,24,-103,-104,24,-11,24,24,-107,-108,24,24,-38,-97,-98,24,24,-101,-102,24,24,-105,-106,24,24,24,-110,24,-112,24,-114,-37,-109,-111,-113,]),'OPENFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[25,25,-2,-43,-42,25,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,25,25,-141,-119,-127,25,-134,-138,25,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,25,25,25,-135,-63,25,25,-44,-115,-4,-5,-6,-7,-8,-25,25,-39,25,-41,-59,-58,25,25,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,25,-116,-117,25,25,25,25,25,-28,-29,25,25,-40,25,25,25,25,-142,-95,-136,25,25,25,25,25,25,25,25,25,25,25,25,25,25,-85,25,-86,25,25,-131,-143,-140,25,-89,25,-90,25,25,25,-93,25,-94,25,25,-27,25,-83,-84,25,25,25,25,-124,-87,-88,25,25,25,25,-91,-92,25,25,25,25,25,25,25,-99,-100,25,-9,-10,25,25,-103,-104,25,-11,25,25,-107,-108,25,25,-38,-97,-98,25,25,-101,-102,25,25,-105,-106,25,25,25,-110,25,-112,25,-114,-37,-109,-111,-113,]),'READFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[26,26,-2,-43,-42,26,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,26,26,-141,-119,-127,26,-134,-138,26,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,26,26,26,-135,-63,26,26,-44,-115,-4,-5,-6,-7,-8,-25,26,-39,26,-41,-59,-58,26,26,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,26,-116,-117,26,26,26,26,26,-28,-29,26,26,-40,26,26,26,26,-142,-95,-136,26,26,26,26,26,26,26,26,26,26,26,26,26,26,-85,26,-86,26,26,-131,-143,-140,26,-89,26,-90,26,26,26,-93,26,-94,26,26,-27,26,-83,-84,26,26,26,26,-124,-87,-88,26,26,26,26,-91,-92,26,26,26,26,26,26,26,-99,-100,26,-9,-10,26,26,-103,-104,26,-11,26,26,-107,-108,26,26,-38,-97,-98,26,26,-101,-102,26,26,-105,-106,26,26,26,-110,26,-112,26,-114,-37,-109,-111,-113,]),'WRITEFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[27,27,-2,-43,-42,27,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,27,27,-141,-119,-127,27,-134,-138,27,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,27,27,27,-135,-63,27,27,-44,-115,-4,-5,-6,-7,-8,-25,27,-39,27,-41,-59,-58,27,27,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,27,-116,-117,27,27,27,27,27,-28,-29,27,27,-40,27,27,27,27,-142,-95,-136,27,27,27,27,27,27,27,27,27,27,27,27,27,27,-85,27,-86,27,27,-131,-143,-140,27,-89,27,-90,27,27,27,-93,27,-94,27,27,-27,27,-83,-84,27,27,27,27,-124,-87,-88,27,27,27,27,-91,-92,27,27,27,27,27,27,27,-99,-100,27,-9,-10,27,27,-103,-104,27,-11,27,27,-107,-108,27,27,-38,-97,-98,27,27,-101,-102,27,27,-105,-106,27,27,27,-110,27,-112,27,-114,-37,-109,-111,-113,]),'CLOSEFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[28,28,-2,-43,-42,28,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,28,28,-141,-119,-127,28,-134,-138,28,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,28,28,28,-135,-63,28,28,-44,-115,-4,-5,-6,-7,-8,-25,28,-39,28,-41,-59,-58,28,28,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,28,-116,-117,28,28,28,28,28,-28,-29,28,28,-40,28,28,28,28,-142,-95,-136,28,28,28,28,28,28,28,28,28,28,28,28,28,28,-85,28,-86,28,28,-131,-143,-140,28,-89,28,-90,28,28,28,-93,28,-94,28,28,-27,28,-83,-84,28,28,28,28,-124,-87,-88,28,28,28,28,-91,-92,28,28,28,28,28,28,28,-99,-100,28,-9,-10,28,28,-103,-104,28,-11,28,28,-107,-108,28,28,-38,-97,-98,28,28,-101,-102,28,28,-105,-106,28,28,28,-110,28,-112,28,-114,-37,-109,-111,-113,]),'SEEK':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[29,29,-2,-43,-42,29,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,29,29,-141,-119,-127,29,-134,-138,29,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,29,29,29,-135,-63,29,29,-44,-115,-4,-5,-6,-7,-8,-25,29,-39,29,-41,-59,-58,29,29,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,29,-116,-117,29,29,29,29,29,-28,-29,29,29,-40,29,29,29,29,-142,-95,-136,29,29,29,29,29,29,29,29,29,29,29,29,29,29,-85,29,-86,29,29,-131,-143,-140,29,-89,29,-90,29,29,29,-93,29,-94,29,29,-27,29,-83,-84,29,29,29,29,-124,-87,-88,29,29,29,29,-91,-92,29,29,29,29,29,29,29,-99,-100,29,-9,-10,29,29,-103,-104,29,-11,29,29,-107,-108,29,29,-38,-97,-98,29,29,-101,-102,29,29,-105,-106,29,29,29,-110,29,-112,29,-114,-37,-109,-111,-113,]),'TYPE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[30,30,-2,-43,-42,30,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,30,30,-141,-119,-127,30,-134,-138,30,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,30,30,30,-135,-63,30,30,-44,-115,-4,-5,-6,-7,-8,-25,30,-39,30,-41,-59,-58,30,30,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,30,-116,-117,30,30,30,30,30,-28,-29,30,30,-40,30,30,30,30,-142,-95,-136,30,30,30,30,30,30,30,30,30,30,30,30,30,30,-85,30,-86,30,30,-131,-143,-140,30,-89,30,-90,30,30,30,-93,30,-94,30,30,-27,30,-83,-84,30,30,30,30,-124,-87,-88,30,30,30,30,-91,-92,30,30,30,30,30,30,30,-99,-100,30,-9,-10,30,30,-103,-104,30,-11,30,30,-107,-108,30,30,-38,-97,-98,30,30,-101,-102,30,30,-105,-106,30,30,30,-110,30,-112,30,-114,-37,-109,-111,-113,]),'PASS':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[32,32,-2,-43,-42,32,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,32,32,-141,-119,-127,32,-134,-138,32,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,32,32,32,-135,-63,32,32,-44,-115,-4,-5,-6,-7,-8,-25,32,-39,32,-41,-59,-58,32,32,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,32,-116,-117,32,32,32,32,32,-28,-29,32,32,-40,32,32,32,32,-142,-95,-136,32,32,32,32,32,32,32,32,32,32,32,32,32,32,-85,32,-86,32,32,-131,-143,-140,32,-89,32,-90,32,32,32,-93,32,-94,32,32,-27,32,-83,-84,32,32,32,32,-124,-87,-88,32,32,32,32,-91,-92,32,32,32,32,32,32,32,-99,-100,32,-9,-10,32,32,-103,-104,32,-11,32,32,-107,-108,32,32,-38,-97,-98,32,32,-101,-102,32,32,-105,-106,32,32,32,-110,32,-112,32,-114,-37,-109,-111,-113,]),'IMPORT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[33,33,-2,-43,-42,33,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,33,33,-141,-119,-127,33,-134,-138,33,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,33,33,33,-135,-63,33,33,-44,-115,-4,-5,-6,-7,-8,-25,33,-39,33,-41,-59,-58,33,33,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,33,-116,-117,33,33,33,33,33,-28,-29,33,33,-40,33,33,33,33,-142,-95,-136,33,33,33,33,33,33,33,33,33,33,33,33,33,33,-85,33,-86,33,33,-131,-143,-140,33,-89,33,-90,33,33,33,-93,33,-94,33,33,-27,33,-83,-84,33,33,33,33,-124,-87,-88,33,33,33,33,-91,-92,33,33,33,33,33,33,33,-99,-100,33,-9,-10,33,33,-103,-104,33,-11,33,33,-107,-108,33,33,-38,-97,-98,33,33,-101,-102,33,33,-105,-106,33,33,33,-110,33,-112,33,-114,-37,-109,-111,-113,]),'CLASS':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,87,91,94,98,100,101,102,103,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,145,149,150,155,158,166,168,172,174,176,178,183,188,189,191,192,200,201,202,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,240,242,247,249,252,253,255,257,259,261,264,266,269,270,271,272,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,324,325,326,327,329,330,332,333,334,335,337,338,339,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[34,34,-2,-43,-42,34,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,34,34,-141,-119,-127,34,-134,-138,34,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,34,34,34,-135,-63,34,34,-44,-115,-4,-5,-6,-7,-8,-25,34,-39,34,-41,-59,-58,34,34,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,34,-116,-117,34,34,34,34,34,-28,-29,34,34,-40,34,34,34,34,-142,-95,-136,34,34,34,34,34,34,34,34,34,34,34,34,34,34,-85,34,-86,34,34,-131,-143,-140,34,-89,34,-90,34,34,34,-93,34,-94,34,34,-27,34,-83,-84,34,34,34,34,-124,-87,-88,34,34,34,34,-91,-92,34,34,34,34,34,34,34,-99,-100,34,-9,-10,34,34,-103,-104,34,-11,34,34,-107,-108,34,34,-38,-97,-98,34,34,-101,-102,34,34,-105,-106,34,34,34,-110,34,-112,34,-114,-37,-109,-111,-113,]),'LEFT_SQUARE':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,177,178,179,183,184,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[10,10,-2,48,-42,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-137,10,10,10,10,-64,-65,-66,-67,-68,-69,-1,-3,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-135,-19,-22,-23,-26,-24,10,10,10,-141,-119,-127,10,-134,-138,10,-47,10,10,-58,-59,-118,10,10,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,10,10,10,10,10,10,10,10,10,10,10,10,10,-63,10,10,10,10,10,10,-44,10,-115,10,-4,237,-5,238,-6,245,-7,-8,-25,10,10,-31,-39,10,-41,10,10,-59,-58,10,10,-96,-120,-121,-122,-123,275,-126,-128,-129,-139,10,-116,-117,10,10,10,10,10,10,10,10,-28,10,-29,-30,10,-33,10,10,-40,10,10,10,10,-142,-95,10,-136,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-85,10,-86,10,10,-131,-143,-140,10,10,10,-89,10,-90,10,10,10,-93,10,-94,10,10,-27,-32,10,10,-83,-84,10,10,10,10,-124,-87,-88,10,10,10,10,-91,-92,10,10,10,10,10,10,10,-99,-100,10,-9,-10,10,10,-103,-104,10,-11,10,10,-107,-108,10,10,-38,-97,-98,10,10,-101,-102,10,10,-105,-106,10,10,10,-110,10,-112,10,-114,-37,-109,-111,-113,]),'ID':([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,38,39,40,41,42,43,44,45,46,47,48,49,52,53,55,56,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,114,115,119,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,163,164,165,166,168,169,172,173,174,175,176,178,180,181,182,183,185,186,187,188,189,191,192,194,195,200,201,202,203,204,205,206,209,211,212,214,217,220,221,222,223,224,225,226,227,228,229,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,263,264,265,266,269,270,271,272,274,275,278,279,280,285,286,287,288,290,292,293,294,295,297,298,300,301,302,305,307,308,309,310,311,312,313,314,316,317,318,319,321,322,324,325,326,327,328,329,330,332,333,334,335,336,337,338,339,340,341,342,343,344,349,350,351,352,353,354,355,357,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,],[4,4,-2,47,-43,50,51,54,57,-42,4,4,4,4,4,85,4,4,88,4,91,92,93,4,4,4,4,4,4,100,4,-137,4,103,4,4,4,-64,-65,-66,-67,-68,-69,-1,-3,4,4,116,118,120,122,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,-135,-19,-22,-23,-26,-24,4,4,4,-141,-119,-127,4,-134,-138,4,-47,4,4,-58,-59,-118,176,178,183,4,4,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,4,4,4,4,4,4,4,4,4,4,4,4,4,207,207,-63,4,4,207,224,4,4,4,4,232,-44,4,-115,4,-4,-5,207,207,207,-6,207,207,207,-7,-8,-25,4,4,-31,-39,4,-41,4,4,-59,-58,4,267,268,4,-96,-120,-121,-122,-123,-125,-126,-128,-129,276,278,-139,4,-116,-117,4,4,4,4,4,4,4,4,-28,4,-29,-30,4,-33,4,4,-40,303,4,207,4,4,4,-142,-95,313,4,-136,318,4,4,4,4,4,329,4,4,4,4,337,4,4,4,4,4,-85,345,347,4,-86,350,4,4,-131,356,-143,-140,4,4,4,-89,4,-90,363,4,4,4,-93,4,-94,371,4,4,-27,-32,4,4,378,-83,-84,4,4,4,4,386,-124,387,388,-87,-88,4,4,4,4,394,395,-91,-92,4,4,4,4,401,4,403,404,405,4,4,408,-99,-100,4,-9,-10,4,4,412,-103,-104,4,-11,4,4,416,-107,-108,4,4,-38,-97,-98,4,4,-101,-102,4,4,-105,-106,4,4,425,4,-110,4,-112,4,-114,-37,-109,-111,-113,]),'NOT':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[35,35,-2,-43,-42,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-137,35,35,35,35,-64,-65,-66,-67,-68,-69,-1,-3,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-135,-19,-22,-23,-26,-24,35,35,35,-141,-119,-127,35,-134,-138,35,-47,35,35,-58,-59,-118,35,35,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,35,35,35,35,35,35,35,35,35,35,35,35,35,-63,35,35,35,35,35,35,-44,35,-115,35,-4,-5,-6,-7,-8,-25,35,35,-31,-39,35,-41,35,35,-59,-58,35,35,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,35,-116,-117,35,35,35,35,35,35,35,35,-28,35,-29,-30,35,-33,35,35,-40,35,35,35,35,-142,-95,35,-136,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-85,35,-86,35,35,-131,-143,-140,35,35,35,-89,35,-90,35,35,35,-93,35,-94,35,35,-27,-32,35,35,-83,-84,35,35,35,35,-124,-87,-88,35,35,35,35,-91,-92,35,35,35,35,35,35,35,-99,-100,35,-9,-10,35,35,-103,-104,35,-11,35,35,-107,-108,35,35,-38,-97,-98,35,35,-101,-102,35,35,-105,-106,35,35,35,-110,35,-112,35,-114,-37,-109,-111,-113,]),'MINUS':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,190,191,192,193,194,195,199,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,235,236,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,262,264,266,269,270,271,272,275,278,280,283,285,286,287,288,292,293,294,295,298,299,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,359,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[38,38,-2,-43,72,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-137,38,38,38,38,-64,-65,-66,-67,-68,-69,-1,-3,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-135,-19,72,72,-23,72,-24,72,38,38,154,72,-141,72,72,72,72,72,72,38,72,72,38,72,38,38,-58,-59,72,-118,72,38,38,72,72,72,72,72,72,72,72,72,-54,-55,-56,-57,-60,-61,72,72,-18,38,38,38,154,38,38,38,38,38,38,38,38,38,-63,38,38,38,38,38,38,-44,38,-115,38,-4,-5,-6,72,72,72,72,38,72,38,-31,72,72,38,-41,38,38,-59,-58,38,38,-96,-120,-121,-122,-123,-125,72,72,-129,-139,38,-116,-117,72,72,38,38,38,38,38,38,38,38,-28,38,-29,-30,38,-33,38,38,-40,72,38,38,38,38,-142,-95,38,-136,38,72,38,38,38,38,38,38,38,38,38,72,38,38,154,38,-85,38,-86,38,38,-131,-143,-140,38,38,38,-89,38,-90,38,38,38,-93,38,-94,38,38,-27,-32,38,38,-83,-84,38,38,38,38,-124,72,-87,-88,38,38,38,38,-91,-92,38,38,38,38,154,38,38,-99,-100,38,-9,-10,38,38,-103,-104,38,-11,38,38,-107,-108,38,38,-38,-97,-98,38,38,-101,-102,38,38,-105,-106,38,38,38,-110,38,-112,38,-114,-37,-109,-111,-113,]),'PLUS':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,190,191,192,193,194,195,199,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,235,236,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,262,264,266,269,270,271,272,275,278,280,283,285,286,287,288,292,293,294,295,298,299,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,359,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[39,39,-2,-43,71,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,-137,39,39,39,39,-64,-65,-66,-67,-68,-69,-1,-3,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,-135,-19,71,71,-23,71,-24,71,39,39,153,71,-141,71,71,71,71,71,71,39,71,71,39,71,39,39,-58,-59,71,-118,71,39,39,71,71,71,71,71,71,71,71,71,-54,-55,-56,-57,-60,-61,71,71,-18,39,39,39,153,39,39,39,39,39,39,39,39,39,-63,39,39,39,39,39,39,-44,39,-115,39,-4,-5,-6,71,71,71,71,39,71,39,-31,71,71,39,-41,39,39,-59,-58,39,39,-96,-120,-121,-122,-123,-125,71,71,-129,-139,39,-116,-117,71,71,39,39,39,39,39,39,39,39,-28,39,-29,-30,39,-33,39,39,-40,71,39,39,39,39,-142,-95,39,-136,39,71,39,39,39,39,39,39,39,39,39,71,39,39,153,39,-85,39,-86,39,39,-131,-143,-140,39,39,39,-89,39,-90,39,39,39,-93,39,-94,39,39,-27,-32,39,39,-83,-84,39,39,39,39,-124,71,-87,-88,39,39,39,39,-91,-92,39,39,39,39,153,39,39,-99,-100,39,-9,-10,39,39,-103,-104,39,-11,39,39,-107,-108,39,39,-38,-97,-98,39,39,-101,-102,39,39,-105,-106,39,39,39,-110,39,-112,39,-114,-37,-109,-111,-113,]),'LEFT_PAREN':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,88,89,91,92,93,94,98,100,101,102,103,104,105,106,107,108,112,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,167,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[20,20,-2,49,-42,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-137,20,20,105,106,20,20,-64,-65,-66,-67,-68,-69,-1,-3,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-135,-19,-22,-23,-26,-24,20,20,20,156,157,159,160,161,-119,-127,20,-134,-138,20,-47,20,20,-58,-59,-118,180,181,182,185,186,187,20,20,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,20,20,20,20,20,20,20,20,203,204,20,20,20,-63,20,20,20,20,20,228,20,-44,20,-115,20,-4,-5,-6,-7,-8,-25,20,20,-31,-39,20,-41,20,20,-59,-58,20,20,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,20,-116,-117,20,20,20,20,20,20,20,20,-28,20,-29,-30,20,-33,20,20,-40,20,20,20,20,-142,-95,20,-136,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-85,20,-86,20,20,-131,-143,-140,20,20,20,-89,20,-90,20,20,20,-93,20,-94,20,20,-27,-32,20,20,-83,-84,20,20,20,20,-124,-87,-88,20,20,20,20,-91,-92,20,20,20,20,20,20,20,-99,-100,20,-9,-10,20,20,-103,-104,20,-11,20,20,-107,-108,20,20,-38,-97,-98,20,20,-101,-102,20,20,-105,-106,20,20,20,-110,20,-112,20,-114,-37,-109,-111,-113,]),'DATE':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[40,40,-2,-43,-42,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-137,40,40,40,40,-64,-65,-66,-67,-68,-69,-1,-3,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-135,-19,-22,-23,-26,-24,40,40,40,-141,-119,-127,40,-134,-138,40,-47,40,40,-58,-59,-118,40,40,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,40,40,40,40,40,40,40,40,40,40,40,40,40,-63,40,40,40,40,40,40,-44,40,-115,40,-4,-5,-6,-7,-8,-25,40,40,-31,-39,40,-41,40,40,-59,-58,40,40,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,40,-116,-117,40,40,40,40,40,40,40,40,-28,40,-29,-30,40,-33,40,40,-40,40,40,40,40,-142,-95,40,-136,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-85,40,-86,40,40,-131,-143,-140,40,40,40,-89,40,-90,40,40,40,-93,40,-94,40,40,-27,-32,40,40,-83,-84,40,40,40,40,-124,-87,-88,40,40,40,40,-91,-92,40,40,40,40,40,40,40,-99,-100,40,-9,-10,40,40,-103,-104,40,-11,40,40,-107,-108,40,40,-38,-97,-98,40,40,-101,-102,40,40,-105,-106,40,40,40,-110,40,-112,40,-114,-37,-109,-111,-113,]),'BOOLEAN':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[41,41,-2,-43,-42,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-137,41,41,41,41,-64,-65,-66,-67,-68,-69,-1,-3,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-135,-19,-22,-23,-26,-24,41,41,41,-141,-119,-127,41,-134,-138,41,-47,41,41,-58,-59,-118,41,41,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,41,41,41,41,41,41,41,41,41,41,41,41,41,-63,41,41,41,41,41,41,-44,41,-115,41,-4,-5,-6,-7,-8,-25,41,41,-31,-39,41,-41,41,41,-59,-58,41,41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,41,-116,-117,41,41,41,41,41,41,41,41,-28,41,-29,-30,41,-33,41,41,-40,41,41,41,41,-142,-95,41,-136,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-85,41,-86,41,41,-131,-143,-140,41,41,41,-89,41,-90,41,41,41,-93,41,-94,41,41,-27,-32,41,41,-83,-84,41,41,41,41,-124,-87,-88,41,41,41,41,-91,-92,41,41,41,41,41,41,41,-99,-100,41,-9,-10,41,41,-103,-104,41,-11,41,41,-107,-108,41,41,-38,-97,-98,41,41,-101,-102,41,41,-105,-106,41,41,41,-110,41,-112,41,-114,-37,-109,-111,-113,]),'CHAR':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[42,42,-2,-43,-42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-137,42,42,42,42,-64,-65,-66,-67,-68,-69,-1,-3,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-135,-19,-22,-23,-26,-24,42,42,42,-141,-119,-127,42,-134,-138,42,-47,42,42,-58,-59,-118,42,42,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,42,42,42,42,42,42,42,42,42,42,42,42,42,-63,42,42,42,42,42,42,-44,42,-115,42,-4,-5,-6,-7,-8,-25,42,42,-31,-39,42,-41,42,42,-59,-58,42,42,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,42,-116,-117,42,42,42,42,42,42,42,42,-28,42,-29,-30,42,-33,42,42,-40,42,42,42,42,-142,-95,42,-136,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-85,42,-86,42,42,-131,-143,-140,42,42,42,-89,42,-90,42,42,42,-93,42,-94,42,42,-27,-32,42,42,-83,-84,42,42,42,42,-124,-87,-88,42,42,42,42,-91,-92,42,42,42,42,42,42,42,-99,-100,42,-9,-10,42,42,-103,-104,42,-11,42,42,-107,-108,42,42,-38,-97,-98,42,42,-101,-102,42,42,-105,-106,42,42,42,-110,42,-112,42,-114,-37,-109,-111,-113,]),'STRING':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[43,43,-2,-43,-42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-137,43,43,43,43,-64,-65,-66,-67,-68,-69,-1,-3,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-135,-19,-22,-23,-26,-24,43,43,43,-141,-119,-127,43,-134,-138,43,-47,43,43,-58,-59,-118,43,43,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,43,43,43,43,43,43,43,43,43,43,43,43,43,-63,43,43,43,43,43,43,-44,43,-115,43,-4,-5,-6,-7,-8,-25,43,43,-31,-39,43,-41,43,43,-59,-58,43,43,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,43,-116,-117,43,43,43,43,43,43,43,43,-28,43,-29,-30,43,-33,43,43,-40,43,43,43,43,-142,-95,43,-136,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-85,43,-86,43,43,-131,-143,-140,43,43,43,-89,43,-90,43,43,43,-93,43,-94,43,43,-27,-32,43,43,-83,-84,43,43,43,43,-124,-87,-88,43,43,43,43,-91,-92,43,43,43,43,43,43,43,-99,-100,43,-9,-10,43,43,-103,-104,43,-11,43,43,-107,-108,43,43,-38,-97,-98,43,43,-101,-102,43,43,-105,-106,43,43,43,-110,43,-112,43,-114,-37,-109,-111,-113,]),'REAL':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[44,44,-2,-43,-42,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-137,44,44,44,44,-64,-65,-66,-67,-68,-69,-1,-3,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-135,-19,-22,-23,-26,-24,44,44,44,-141,-119,-127,44,-134,-138,44,-47,44,44,-58,-59,-118,44,44,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,44,44,44,44,44,44,44,44,44,44,44,44,44,-63,44,44,44,44,44,44,-44,44,-115,44,-4,-5,-6,-7,-8,-25,44,44,-31,-39,44,-41,44,44,-59,-58,44,44,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,44,-116,-117,44,44,44,44,44,44,44,44,-28,44,-29,-30,44,-33,44,44,-40,44,44,44,44,-142,-95,44,-136,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-85,44,-86,44,44,-131,-143,-140,44,44,44,-89,44,-90,44,44,44,-93,44,-94,44,44,-27,-32,44,44,-83,-84,44,44,44,44,-124,-87,-88,44,44,44,44,-91,-92,44,44,44,44,44,44,44,-99,-100,44,-9,-10,44,44,-103,-104,44,-11,44,44,-107,-108,44,44,-38,-97,-98,44,44,-101,-102,44,44,-105,-106,44,44,44,-110,44,-112,44,-114,-37,-109,-111,-113,]),'INTEGER':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[45,45,-2,-43,-42,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-137,45,45,45,45,-64,-65,-66,-67,-68,-69,-1,-3,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-135,-19,-22,-23,-26,-24,45,45,45,-141,-119,-127,45,-134,-138,45,-47,45,45,-58,-59,-118,45,45,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,45,45,45,45,45,45,45,45,45,45,45,45,45,-63,45,45,45,45,45,45,-44,45,-115,45,-4,-5,-6,-7,-8,-25,45,45,-31,-39,45,-41,45,45,-59,-58,45,45,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,45,-116,-117,45,45,45,45,45,45,45,45,-28,45,-29,-30,45,-33,45,45,-40,45,45,45,45,-142,-95,45,-136,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-85,45,-86,45,45,-131,-143,-140,45,45,45,-89,45,-90,45,45,45,-93,45,-94,45,45,-27,-32,45,45,-83,-84,45,45,45,45,-124,-87,-88,45,45,45,45,-91,-92,45,45,45,45,45,45,45,-99,-100,45,-9,-10,45,45,-103,-104,45,-11,45,45,-107,-108,45,45,-38,-97,-98,45,45,-101,-102,45,45,-105,-106,45,45,45,-110,45,-112,45,-114,-37,-109,-111,-113,]),'MOD':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,190,191,192,193,194,195,199,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,235,236,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,262,264,266,269,270,271,272,275,278,280,283,285,286,287,288,292,293,294,295,298,299,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,359,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[36,36,-2,-43,67,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-137,36,36,36,36,-64,-65,-66,-67,-68,-69,-1,-3,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-135,-19,67,67,-23,67,-24,67,36,36,151,67,-141,67,67,67,67,67,67,36,67,67,36,67,36,36,-58,-59,67,-118,67,36,36,67,67,67,67,67,67,67,67,67,-54,-55,-56,-57,67,67,67,67,-18,36,36,36,151,36,36,36,36,36,36,36,36,36,-63,36,36,36,36,36,36,-44,36,-115,36,-4,-5,-6,67,67,67,67,36,67,36,-31,67,67,36,-41,36,36,-59,-58,36,36,-96,-120,-121,-122,-123,-125,67,67,-129,-139,36,-116,-117,67,67,36,36,36,36,36,36,36,36,-28,36,-29,-30,36,-33,36,36,-40,67,36,36,36,36,-142,-95,36,-136,36,67,36,36,36,36,36,36,36,36,36,67,36,36,151,36,-85,36,-86,36,36,-131,-143,-140,36,36,36,-89,36,-90,36,36,36,-93,36,-94,36,36,-27,-32,36,36,-83,-84,36,36,36,36,-124,67,-87,-88,36,36,36,36,-91,-92,36,36,36,36,151,36,36,-99,-100,36,-9,-10,36,36,-103,-104,36,-11,36,36,-107,-108,36,36,-38,-97,-98,36,36,-101,-102,36,36,-105,-106,36,36,36,-110,36,-112,36,-114,-37,-109,-111,-113,]),'DIV':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,190,191,192,193,194,195,199,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,235,236,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,262,264,266,269,270,271,272,275,278,280,283,285,286,287,288,292,293,294,295,298,299,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,359,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[37,37,-2,-43,68,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-137,37,37,37,37,-64,-65,-66,-67,-68,-69,-1,-3,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-135,-19,68,68,-23,68,-24,68,37,37,152,68,-141,68,68,68,68,68,68,37,68,68,37,68,37,37,-58,-59,68,-118,68,37,37,68,68,68,68,68,68,68,68,68,-54,-55,-56,-57,68,68,68,68,-18,37,37,37,152,37,37,37,37,37,37,37,37,37,-63,37,37,37,37,37,37,-44,37,-115,37,-4,-5,-6,68,68,68,68,37,68,37,-31,68,68,37,-41,37,37,-59,-58,37,37,-96,-120,-121,-122,-123,-125,68,68,-129,-139,37,-116,-117,68,68,37,37,37,37,37,37,37,37,-28,37,-29,-30,37,-33,37,37,-40,68,37,37,37,37,-142,-95,37,-136,37,68,37,37,37,37,37,37,37,37,37,68,37,37,152,37,-85,37,-86,37,37,-131,-143,-140,37,37,37,-89,37,-90,37,37,37,-93,37,-94,37,37,-27,-32,37,37,-83,-84,37,37,37,37,-124,68,-87,-88,37,37,37,37,-91,-92,37,37,37,37,152,37,37,-99,-100,37,-9,-10,37,37,-103,-104,37,-11,37,37,-107,-108,37,37,-38,-97,-98,37,37,-101,-102,37,37,-105,-106,37,37,37,-110,37,-112,37,-114,-37,-109,-111,-113,]),'POINTER':([0,1,2,4,9,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,78,79,80,81,82,83,84,86,87,90,91,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,110,112,113,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,167,168,172,173,174,175,176,178,183,188,189,190,191,192,193,194,195,199,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,235,236,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,262,264,266,269,270,271,272,275,278,280,283,285,286,287,288,292,293,294,295,298,299,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,359,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[31,31,-2,-43,75,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,-137,31,31,31,31,-64,-65,-66,-67,-68,-69,-1,-3,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,-135,-19,75,75,-23,75,-24,75,31,31,155,75,-141,75,75,75,75,75,75,31,75,75,31,-47,31,31,-58,-59,75,-118,75,31,31,75,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,75,75,-18,31,31,31,155,31,31,31,31,31,31,31,31,31,-63,31,31,31,31,31,229,31,-44,31,-115,31,-4,-5,-6,-7,75,75,75,31,75,31,-31,75,75,31,-41,31,31,-59,-58,31,31,-96,-120,-121,-122,-123,-125,75,75,-129,-139,31,-116,-117,75,75,31,31,31,31,31,31,31,31,-28,31,-29,-30,31,-33,31,31,-40,75,31,31,31,31,-142,-95,31,-136,31,75,31,31,31,31,31,31,31,31,31,75,31,31,155,31,-85,31,-86,31,31,-131,-143,-140,31,31,31,-89,31,-90,31,31,31,-93,31,-94,31,31,-27,-32,31,31,-83,-84,31,31,31,31,-124,75,-87,-88,31,31,31,31,-91,-92,31,31,31,31,155,31,31,-99,-100,31,-9,-10,31,31,-103,-104,31,-11,31,31,-107,-108,31,31,-38,-97,-98,31,31,-101,-102,31,31,-105,-106,31,31,31,-110,31,-112,31,-114,-37,-109,-111,-113,]),'NEW':([0,1,2,4,9,10,11,12,13,14,17,18,19,20,24,25,26,27,28,29,31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,52,55,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,79,80,81,82,84,86,87,91,94,98,100,101,102,103,104,105,106,107,108,112,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,158,159,160,164,165,166,168,172,173,174,175,176,178,183,188,189,191,192,194,195,200,201,202,203,204,205,206,209,214,217,220,221,222,223,224,225,226,227,231,232,233,234,237,238,240,242,245,247,249,252,253,254,255,256,257,258,259,260,261,264,266,269,270,271,272,275,278,280,285,286,287,288,292,293,294,295,298,300,301,302,305,307,310,311,313,314,316,318,319,321,322,324,325,326,327,329,330,332,333,334,335,337,338,339,340,341,342,344,349,350,351,352,353,355,361,362,363,364,365,366,369,370,371,372,373,374,376,381,382,384,385,386,387,388,389,390,392,393,394,395,396,397,399,400,401,402,403,406,407,408,409,410,411,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427,428,],[21,21,-2,-43,-42,21,21,21,21,21,21,21,89,21,21,21,21,21,21,21,21,-137,21,21,21,21,-64,-65,-66,-67,-68,-69,-1,-3,21,21,117,121,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,-135,-19,-22,-23,-26,-24,21,21,21,-141,-119,-127,21,-134,-138,21,-47,21,21,-58,-59,-118,21,21,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,21,21,21,21,21,21,21,21,21,21,21,21,21,-63,21,21,21,21,21,21,-44,21,-115,21,-4,-5,-6,-7,-8,-25,21,21,-31,-39,21,-41,21,21,-59,-58,21,21,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,21,-116,-117,21,21,21,21,21,21,21,21,-28,21,-29,-30,21,-33,21,21,-40,21,21,21,21,-142,-95,21,-136,21,21,21,21,21,21,21,21,21,21,21,21,21,21,-85,21,-86,21,21,-131,-143,-140,21,21,21,-89,21,-90,21,21,21,-93,21,-94,21,21,-27,-32,21,21,-83,-84,21,21,21,21,-124,-87,-88,21,21,21,21,-91,-92,21,21,21,21,21,21,21,-99,-100,21,-9,-10,21,21,-103,-104,21,-11,21,21,-107,-108,21,21,-38,-97,-98,21,21,-101,-102,21,21,-105,-106,21,21,21,-110,21,-112,21,-114,-37,-109,-111,-113,]),'$end':([1,2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[0,-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'UNTIL':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,86,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,148,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ENDWHILE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,150,158,172,174,176,178,183,188,189,191,200,201,202,205,206,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,202,-63,-44,-115,-4,-5,-6,-7,-8,-25,-39,261,-41,-59,-58,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ENDTYPE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,166,172,174,176,178,183,188,189,191,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,227,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ENDCLASS':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,168,172,174,176,178,183,188,189,191,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,280,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,231,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,319,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ELSE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,192,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,252,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ENDIF':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,192,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,298,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,253,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,339,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ENDPROCEDURE':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,266,270,271,272,278,286,288,293,295,305,307,310,311,316,318,319,324,325,326,327,332,333,334,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,307,311,-142,-95,-136,325,327,333,335,344,-85,349,-86,-131,-143,-140,361,-89,362,-90,369,-93,370,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'SEMICOLON':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,197,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,300,301,307,311,316,318,319,325,327,333,335,339,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,258,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,340,-36,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'NEXT':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,200,202,205,206,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,342,344,349,355,361,362,369,370,384,385,387,388,392,393,395,399,400,402,403,406,407,410,411,414,415,420,422,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-59,-58,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,377,-83,-84,-124,-87,-88,-91,-92,-99,-100,-9,-10,-103,-104,-11,-107,-108,418,-38,-97,-98,-101,-102,-105,-106,-110,-112,-114,-37,-109,-111,-113,]),'ENDFUNCTION':([2,4,9,32,40,41,42,43,44,45,46,47,75,77,79,80,81,82,91,94,98,101,102,104,107,108,112,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,176,178,183,188,189,191,200,202,217,220,221,222,223,224,225,226,227,231,233,234,253,255,261,271,272,278,307,311,316,318,319,325,327,333,335,339,344,349,352,353,355,361,362,365,366,369,370,373,374,381,382,384,385,387,388,389,390,392,393,395,396,397,399,400,403,406,407,409,410,411,413,414,415,417,419,420,421,422,423,424,425,426,427,428,],[-2,-43,-42,-137,-64,-65,-66,-67,-68,-69,-1,-3,-135,-19,-22,-23,-26,-24,-141,-119,-127,-134,-138,-47,-58,-59,-118,-15,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-4,-5,-6,-7,-8,-25,-39,-41,-96,-120,-121,-122,-123,-125,-126,-128,-129,-139,-116,-117,-28,-29,-40,-142,-95,-136,-85,-86,-131,-143,-140,-89,-90,-93,-94,-27,-83,-84,384,385,-124,-87,-88,392,393,-91,-92,399,400,406,407,-99,-100,-9,-10,410,411,-103,-104,-11,414,415,-107,-108,-38,-97,-98,420,-101,-102,422,-105,-106,424,426,-110,427,-112,428,-114,-37,-109,-111,-113,]),'ASSIGN':([4,9,40,41,42,43,44,45,57,75,77,85,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,205,206,233,234,271,],[-43,58,-64,-65,-66,-67,-68,-69,124,-135,-19,147,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-59,-58,-116,-117,-142,]),'OR':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,59,-64,-65,-66,-67,-68,-69,-135,-19,59,59,59,59,59,59,-141,59,59,59,59,59,59,59,59,-47,-58,-59,59,-118,59,59,-45,59,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,59,59,-18,59,-135,-63,-44,-115,59,59,59,59,59,59,59,-59,-58,59,59,-116,-117,59,59,59,-142,59,59,59,59,59,]),'AND':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,60,-64,-65,-66,-67,-68,-69,-135,-19,60,60,60,60,60,60,-141,60,60,60,60,60,60,60,60,-47,-58,-59,60,-118,60,60,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,60,60,-18,60,-135,-63,-44,-115,60,60,60,60,60,60,60,-59,-58,60,60,-116,-117,60,60,60,-142,60,60,60,60,60,]),'EQUAL':([4,9,40,41,42,43,44,45,57,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,100,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,61,-64,-65,-66,-67,-68,-69,123,-135,-19,61,61,61,61,61,61,-141,61,61,61,61,61,61,167,61,61,61,-58,-59,61,-118,61,61,61,61,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,61,61,-18,61,-135,-63,-44,-115,61,61,61,61,61,61,61,-59,-58,61,61,-116,-117,61,61,61,-142,61,61,61,61,61,]),'NOT_EQUAL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,62,-64,-65,-66,-67,-68,-69,-135,-19,62,62,62,62,62,62,-141,62,62,62,62,62,62,62,62,62,-58,-59,62,-118,62,62,62,62,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,62,62,-18,62,-135,-63,-44,-115,62,62,62,62,62,62,62,-59,-58,62,62,-116,-117,62,62,62,-142,62,62,62,62,62,]),'LESS':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,63,-64,-65,-66,-67,-68,-69,-135,-19,63,63,63,63,63,63,-141,63,63,63,63,63,63,63,63,63,-58,-59,63,-118,63,63,63,63,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,63,63,-18,63,-135,-63,-44,-115,63,63,63,63,63,63,63,-59,-58,63,63,-116,-117,63,63,63,-142,63,63,63,63,63,]),'GREATER':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,64,-64,-65,-66,-67,-68,-69,-135,-19,64,64,64,64,64,64,-141,64,64,64,64,64,64,64,64,64,-58,-59,64,-118,64,64,64,64,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,64,64,-18,64,-135,-63,-44,-115,64,64,64,64,64,64,64,-59,-58,64,64,-116,-117,64,64,64,-142,64,64,64,64,64,]),'LESS_EQUAL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,65,-64,-65,-66,-67,-68,-69,-135,-19,65,65,65,65,65,65,-141,65,65,65,65,65,65,65,65,65,-58,-59,65,-118,65,65,65,65,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,65,65,-18,65,-135,-63,-44,-115,65,65,65,65,65,65,65,-59,-58,65,65,-116,-117,65,65,65,-142,65,65,65,65,65,]),'GREATER_EQUAL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,66,-64,-65,-66,-67,-68,-69,-135,-19,66,66,66,66,66,66,-141,66,66,66,66,66,66,66,66,66,-58,-59,66,-118,66,66,66,66,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,66,66,-18,66,-135,-63,-44,-115,66,66,66,66,66,66,66,-59,-58,66,66,-116,-117,66,66,66,-142,66,66,66,66,66,]),'MUL':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,69,-64,-65,-66,-67,-68,-69,-135,-19,69,69,69,69,69,69,-141,69,69,69,69,69,69,69,69,69,-58,-59,69,-118,69,69,69,69,69,69,69,69,69,69,-54,-55,-56,-57,69,69,69,69,-18,69,-135,-63,-44,-115,69,69,69,69,69,69,69,-59,-58,69,69,-116,-117,69,69,69,-142,69,69,69,69,69,]),'N_DIV':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,70,-64,-65,-66,-67,-68,-69,-135,-19,70,70,70,70,70,70,-141,70,70,70,70,70,70,70,70,70,-58,-59,70,-118,70,70,70,70,70,70,70,70,70,70,-54,-55,-56,-57,70,70,70,70,-18,70,-135,-63,-44,-115,70,70,70,70,70,70,70,-59,-58,70,70,-116,-117,70,70,70,-142,70,70,70,70,70,]),'CONNECT':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,73,-64,-65,-66,-67,-68,-69,-135,-19,73,73,73,73,73,73,-141,73,73,73,73,73,73,73,73,-47,-58,-59,73,-118,73,73,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,73,73,-18,73,-135,-63,-44,-115,73,73,73,73,73,73,73,-59,-58,73,73,-116,-117,73,73,73,-142,73,73,73,73,73,]),'DOT':([4,9,40,41,42,43,44,45,75,77,78,79,81,83,87,90,91,94,95,96,97,98,99,101,102,104,107,108,110,112,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,188,189,190,191,193,199,200,205,206,225,226,233,234,235,236,262,271,283,299,302,359,376,],[-43,74,-64,-65,-66,-67,-68,-69,-135,-19,74,74,74,74,74,74,-141,74,74,74,74,74,74,74,74,-47,-58,-59,74,-118,74,74,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,74,74,-18,74,-135,-63,-44,-115,74,74,74,74,74,74,74,-59,-58,74,74,-116,-117,74,74,74,-142,74,74,74,74,74,]),'RIGHT_SQUARE':([4,10,40,41,42,43,44,45,75,76,77,78,91,101,104,107,108,109,110,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,190,233,234,235,271,281,282,284,291,315,358,359,],[-43,77,-64,-65,-66,-67,-68,-69,-135,142,-19,-21,-141,-134,-47,-58,-59,172,-17,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-20,-116,-117,-16,-142,320,-13,323,331,355,-12,-14,]),'COMMA':([4,40,41,42,43,44,45,75,76,77,78,80,81,82,91,96,97,99,101,104,107,108,109,110,111,112,113,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,170,171,172,174,190,191,208,210,213,215,216,218,233,234,235,236,239,241,243,246,248,250,262,271,276,277,281,282,284,291,303,304,306,315,345,346,347,348,356,358,359,378,404,405,],[-43,-64,-65,-66,-67,-68,-69,-135,143,-19,-21,144,-26,144,-141,163,164,165,-134,-47,-58,-59,173,-17,175,-118,-82,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,175,175,-44,-115,-20,-25,265,-71,265,175,175,265,-116,-117,-16,-81,265,265,265,265,265,265,-82,-142,-133,317,321,-13,321,321,-72,-73,-70,173,-74,-75,-76,-77,-132,-12,-14,-78,-79,-80,]),'THEN':([4,40,41,42,43,44,45,75,77,83,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,233,234,271,],[-43,-64,-65,-66,-67,-68,-69,-135,-19,145,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-116,-117,-142,]),'DO':([4,40,41,42,43,44,45,75,77,87,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,155,158,172,174,205,206,233,234,271,],[-43,-64,-65,-66,-67,-68,-69,-135,-19,149,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-135,-63,-44,-115,-60,-61,-116,-117,-142,]),'RIGHT_PAREN':([4,40,41,42,43,44,45,49,75,77,90,91,101,104,107,108,111,112,113,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,156,157,158,160,161,170,171,172,174,180,181,182,185,186,187,208,210,213,215,216,218,233,234,236,239,241,243,246,248,250,262,271,276,277,303,304,306,345,346,347,348,356,378,404,405,],[-43,-64,-65,-66,-67,-68,-69,112,-135,-19,158,-141,-134,-47,-58,-59,174,-118,-82,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,209,214,-63,217,219,233,234,-44,-115,240,242,244,247,249,251,264,-71,269,271,272,273,-116,-117,-81,285,287,289,292,294,296,158,-142,-133,316,-72,-73,-70,-74,-75,-76,-77,-132,-78,-79,-80,]),'OTHERWISE':([4,40,41,42,43,44,45,75,77,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,146,155,158,172,174,194,195,205,206,233,234,256,258,271,340,],[-43,-64,-65,-66,-67,-68,-69,-135,-19,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,198,-135,-63,-44,-115,198,-31,-60,-61,-116,-117,-30,-33,-142,-32,]),'TO':([4,40,41,42,43,44,45,75,77,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,193,199,205,206,233,234,271,],[-43,-64,-65,-66,-67,-68,-69,-135,-19,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,254,260,-59,-58,-116,-117,-142,]),'COLON':([4,40,41,42,43,44,45,50,51,54,75,77,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,158,172,174,193,196,198,205,206,207,233,234,267,268,271,283,299,],[-43,-64,-65,-66,-67,-68,-69,114,115,119,-135,-19,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-63,-44,-115,-35,257,259,-59,-58,263,-116,-117,308,309,-142,322,-34,]),'STEP':([4,40,41,42,43,44,45,75,77,91,101,104,107,108,112,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,155,158,172,174,205,206,233,234,271,302,],[-43,-64,-65,-66,-67,-68,-69,-135,-19,-141,-134,-47,-58,-59,-118,-45,-46,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-60,-61,-62,-130,-18,-135,-63,-44,-115,-60,-61,-116,-117,-142,341,]),'OF':([15,230,304,314,320,323,330,331,338,346,348,351,364,372,],[84,279,343,354,357,360,367,368,375,379,380,383,391,398,]),'INHERITS':([103,],[169,]),'ARRAY':([114,115,119,263,274,290,297,308,309,312,328,336,],[177,179,184,304,314,330,338,346,348,351,364,372,]),'BYREF':([156,157,161,180,181,182,185,186,187,265,],[211,211,211,211,211,211,211,211,211,211,]),'BYVAL':([156,157,161,180,181,182,185,186,187,265,],[212,212,212,212,212,212,212,212,212,212,]),'READ':([162,],[220,]),'WRITE':([162,],[221,]),'APPEND':([162,],[222,]),'RANDOM':([162,],[223,]),'SET':([167,],[230,]),'ENDCASE':([194,195,256,258,340,],[255,-31,-30,-33,-32,]),'RETURNS':([219,244,251,273,289,296,],[274,290,297,312,328,336,]),} _lr_action = {} for _k, _v in _lr_action_items.items(): @@ -17,7 +17,7 @@ _lr_action[_x][_k] = _y del _lr_action_items -_lr_goto_items = {'statements':([0,17,87,100,103,144,148,207,212,230,238,240,245,247,250,255,257,262,267,283,285,290,292,300,311,312,327,328,335,336,348,349,361,362,369,370,374,384,392,399,406,410,414,],[1,86,149,165,167,190,199,264,268,278,284,286,291,293,296,298,299,303,308,322,324,330,332,340,350,351,363,364,371,372,379,380,387,388,394,395,400,407,411,415,417,419,421,]),'statement':([0,1,17,86,87,100,103,144,148,149,165,167,190,199,207,212,230,238,240,245,247,250,255,257,262,264,267,268,278,283,284,285,286,290,291,292,293,296,298,299,300,303,308,311,312,322,324,327,328,330,332,335,336,340,348,349,350,351,361,362,363,364,369,370,371,372,374,379,380,384,387,388,392,394,395,399,400,406,407,410,411,414,415,417,419,421,],[2,46,2,46,2,2,2,2,2,46,46,46,46,46,2,2,2,2,2,2,2,2,2,2,2,46,2,46,46,2,46,2,46,2,46,2,46,46,46,46,2,46,46,2,2,46,46,2,2,46,46,2,2,46,2,2,46,46,2,2,46,46,2,2,46,46,2,46,46,2,46,46,2,46,46,2,46,2,46,2,46,2,46,46,46,46,]),'expression':([0,1,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,33,35,38,39,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,84,86,87,100,103,105,106,123,142,143,144,145,146,147,148,149,150,151,152,153,154,158,159,163,164,165,167,172,174,190,192,199,201,202,207,212,230,235,236,238,240,243,245,247,250,252,255,257,258,262,264,267,268,273,278,283,284,285,286,290,291,292,293,296,298,299,300,303,308,311,312,319,320,322,324,327,328,330,332,335,336,339,340,348,349,350,351,361,362,363,364,369,370,371,372,374,379,380,384,387,388,392,394,395,399,400,406,407,410,411,414,415,417,419,421,],[9,9,78,79,81,81,83,9,87,90,94,95,96,97,98,99,101,102,104,107,108,110,113,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,145,9,9,9,9,113,113,187,188,189,9,191,197,198,9,9,133,134,203,204,101,113,113,223,224,9,9,233,234,9,191,9,260,260,9,9,9,281,281,9,9,281,9,9,9,297,9,9,300,9,9,9,9,110,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,281,357,9,9,9,9,9,9,9,9,374,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'array_items':([10,],[76,]),'output_expression':([12,13,],[80,82,]),'indexes':([48,273,],[109,313,]),'parameters':([49,105,106,158,159,201,202,],[111,169,170,213,214,169,170,]),'cases':([145,],[192,]),'case':([145,192,],[193,254,]),'case_expression':([145,192,],[194,194,]),'otherwise_statement':([145,192,],[195,195,]),'declare_parameters':([155,156,160,179,180,181,184,185,186,],[206,211,216,237,239,241,244,246,248,]),'declare_parameter':([155,156,160,179,180,181,184,185,186,263,],[208,208,208,208,208,208,208,208,208,304,]),'enumerate_items':([226,],[275,]),'dimensions':([235,236,243,],[279,282,289,]),'dimension':([235,236,243,319,],[280,280,280,356,]),} +_lr_goto_items = {'statements':([0,17,87,100,103,145,149,209,214,232,240,242,247,249,252,257,259,264,269,285,287,292,294,302,313,314,329,330,337,338,350,351,363,364,371,372,376,386,394,401,408,412,416,],[1,86,150,166,168,192,201,266,270,280,286,288,293,295,298,300,301,305,310,324,326,332,334,342,352,353,365,366,373,374,381,382,389,390,396,397,402,409,413,417,419,421,423,]),'statement':([0,1,17,86,87,100,103,145,149,150,166,168,192,201,209,214,232,240,242,247,249,252,257,259,264,266,269,270,280,285,286,287,288,292,293,294,295,298,300,301,302,305,310,313,314,324,326,329,330,332,334,337,338,342,350,351,352,353,363,364,365,366,371,372,373,374,376,381,382,386,389,390,394,396,397,401,402,408,409,412,413,416,417,419,421,423,],[2,46,2,46,2,2,2,2,2,46,46,46,46,46,2,2,2,2,2,2,2,2,2,2,2,46,2,46,46,2,46,2,46,2,46,2,46,46,46,46,2,46,46,2,2,46,46,2,2,46,46,2,2,46,2,2,46,46,2,2,46,46,2,2,46,46,2,46,46,2,46,46,2,46,46,2,46,2,46,2,46,2,46,46,46,46,]),'expression':([0,1,10,11,12,13,14,17,18,20,24,25,26,27,28,29,31,33,35,38,39,48,49,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,84,86,87,100,103,105,106,123,124,143,144,145,146,147,148,149,150,151,152,153,154,155,159,160,164,165,166,168,173,175,192,194,201,203,204,209,214,232,237,238,240,242,245,247,249,252,254,257,259,260,264,266,269,270,275,280,285,286,287,288,292,293,294,295,298,300,301,302,305,310,313,314,321,322,324,326,329,330,332,334,337,338,341,342,350,351,352,353,363,364,365,366,371,372,373,374,376,381,382,386,389,390,394,396,397,401,402,408,409,412,413,416,417,419,421,423,],[9,9,78,79,81,81,83,9,87,90,94,95,96,97,98,99,101,102,104,107,108,110,113,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,146,9,9,9,9,113,113,188,189,190,191,9,193,199,200,9,9,134,135,205,206,101,113,113,225,226,9,9,235,236,9,193,9,262,262,9,9,9,283,283,9,9,283,9,9,9,299,9,9,302,9,9,9,9,110,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,283,359,9,9,9,9,9,9,9,9,376,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'array_items':([10,],[76,]),'output_expression':([12,13,],[80,82,]),'indexes':([48,275,],[109,315,]),'parameters':([49,105,106,159,160,203,204,],[111,170,171,215,216,170,171,]),'cases':([146,],[194,]),'case':([146,194,],[195,256,]),'case_expression':([146,194,],[196,196,]),'otherwise_statement':([146,194,],[197,197,]),'declare_parameters':([156,157,161,180,181,182,185,186,187,],[208,213,218,239,241,243,246,248,250,]),'declare_parameter':([156,157,161,180,181,182,185,186,187,265,],[210,210,210,210,210,210,210,210,210,306,]),'enumerate_items':([228,],[277,]),'dimensions':([237,238,245,],[281,284,291,]),'dimension':([237,238,245,321,],[282,282,282,358,]),} _lr_goto = {} for _k, _v in _lr_goto_items.items(): @@ -34,139 +34,140 @@ ('statement -> PUBLIC ID COLON ID','statement',4,'p_declare_statement','parse.py',49), ('statement -> PRIVATE ID COLON ID','statement',4,'p_private_declare_statement','parse.py',53), ('statement -> CONSTANT ID EQUAL expression','statement',4,'p_const_declare_statement','parse.py',57), - ('statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_array_declare_statement','parse.py',61), - ('statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_array_declare_statement','parse.py',62), - ('statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_private_array_declare_statement','parse.py',66), - ('dimensions -> dimensions COMMA dimension','dimensions',3,'p_dimensions_expression','parse.py',70), - ('dimensions -> dimension','dimensions',1,'p_dimensions_expression','parse.py',71), - ('dimension -> expression COLON expression','dimension',3,'p_dimension_expression','parse.py',80), - ('statement -> expression ASSIGN expression','statement',3,'p_new_assign_statement','parse.py',92), - ('indexes -> indexes COMMA expression','indexes',3,'p_indexes','parse.py',96), - ('indexes -> expression','indexes',1,'p_indexes','parse.py',97), - ('expression -> LEFT_SQUARE array_items RIGHT_SQUARE','expression',3,'p_array_expression','parse.py',106), - ('expression -> LEFT_SQUARE RIGHT_SQUARE','expression',2,'p_array_expression','parse.py',107), - ('array_items -> array_items COMMA expression','array_items',3,'p_array_items','parse.py',114), - ('array_items -> expression','array_items',1,'p_array_items','parse.py',115), - ('statement -> INPUT expression','statement',2,'p_new_input_statement','parse.py',132), - ('statement -> OUTPUT output_expression','statement',2,'p_output_statement','parse.py',136), - ('statement -> _OUTPUT output_expression','statement',2,'p_no_end_output_statement','parse.py',140), - ('output_expression -> output_expression COMMA expression','output_expression',3,'p_output_expression','parse.py',144), - ('output_expression -> expression','output_expression',1,'p_output_expression','parse.py',145), - ('statement -> IF expression THEN statements ELSE statements ENDIF','statement',7,'p_if_statement','parse.py',154), - ('statement -> IF expression THEN statements ENDIF','statement',5,'p_if_statement','parse.py',155), - ('statement -> CASE OF expression cases ENDCASE','statement',5,'p_new_case_statement','parse.py',170), - ('cases -> cases case','cases',2,'p_cases','parse.py',174), - ('cases -> case','cases',1,'p_cases','parse.py',175), - ('case -> case_expression COLON statements SEMICOLON','case',4,'p_case','parse.py',184), - ('case -> otherwise_statement SEMICOLON','case',2,'p_case','parse.py',185), - ('case_expression -> expression TO expression','case_expression',3,'p_case_expression','parse.py',192), - ('case_expression -> expression','case_expression',1,'p_case_expression','parse.py',193), - ('otherwise_statement -> OTHERWISE COLON statements','otherwise_statement',3,'p_otherwise_statement','parse.py',200), - ('statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID','statement',11,'p_for_statement','parse.py',204), - ('statement -> FOR ID ASSIGN expression TO expression statements NEXT ID','statement',9,'p_for_statement','parse.py',205), - ('statement -> REPEAT statements UNTIL expression','statement',4,'p_repeat_statement','parse.py',212), - ('statement -> WHILE expression DO statements ENDWHILE','statement',5,'p_while_statement','parse.py',216), - ('statement -> WHILE expression statements ENDWHILE','statement',4,'p_while_statement','parse.py',217), - ('statement -> expression','statement',1,'p_expression_statement','parse.py',224), - ('expression -> ID','expression',1,'p_id_expression','parse.py',228), - ('expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE','expression',4,'p_array_id_expression','parse.py',232), - ('expression -> expression OR expression','expression',3,'p_or_expression','parse.py',236), - ('expression -> expression AND expression','expression',3,'p_and_expression','parse.py',240), - ('expression -> NOT expression','expression',2,'p_not_expression','parse.py',244), - ('expression -> expression EQUAL expression','expression',3,'p_equal_expression','parse.py',248), - ('expression -> expression NOT_EQUAL expression','expression',3,'p_not_equal_expression','parse.py',252), - ('expression -> expression LESS expression','expression',3,'p_less_expression','parse.py',256), - ('expression -> expression GREATER expression','expression',3,'p_greater_expression','parse.py',260), - ('expression -> expression LESS_EQUAL expression','expression',3,'p_less_equal_expression','parse.py',264), - ('expression -> expression GREATER_EQUAL expression','expression',3,'p_greater_equal_expression','parse.py',268), - ('expression -> expression MOD expression','expression',3,'p_mod_expression','parse.py',272), - ('expression -> expression DIV expression','expression',3,'p_exact_div_expression','parse.py',276), - ('expression -> expression MUL expression','expression',3,'p_mul_expression','parse.py',280), - ('expression -> expression N_DIV expression','expression',3,'p_div_expression','parse.py',284), - ('expression -> MINUS expression','expression',2,'p_uminus_expression','parse.py',288), - ('expression -> PLUS expression','expression',2,'p_uplus_expression','parse.py',292), - ('expression -> expression PLUS expression','expression',3,'p_plus_expression','parse.py',296), - ('expression -> expression MINUS expression','expression',3,'p_minus_expression','parse.py',300), - ('expression -> expression CONNECT expression','expression',3,'p_connect_expression','parse.py',304), - ('expression -> LEFT_PAREN expression RIGHT_PAREN','expression',3,'p_paren_expression','parse.py',309), - ('expression -> DATE','expression',1,'p_date_expression','parse.py',314), - ('expression -> BOOLEAN','expression',1,'p_boolean_expression','parse.py',318), - ('expression -> CHAR','expression',1,'p_char_expression','parse.py',322), - ('expression -> STRING','expression',1,'p_string_expression','parse.py',326), - ('expression -> REAL','expression',1,'p_real_expression','parse.py',330), - ('expression -> INTEGER','expression',1,'p_int_expression','parse.py',334), - ('declare_parameters -> declare_parameters COMMA declare_parameter','declare_parameters',3,'p_declare_parameters','parse.py',340), - ('declare_parameters -> declare_parameter','declare_parameters',1,'p_declare_parameters','parse.py',341), - ('declare_parameter -> ID COLON ID','declare_parameter',3,'p_declare_parameter','parse.py',350), - ('declare_parameter -> ID COLON ARRAY','declare_parameter',3,'p_declare_parameter','parse.py',351), - ('declare_parameter -> BYREF ID COLON ID','declare_parameter',4,'p_declare_parameter','parse.py',352), - ('declare_parameter -> BYREF ID COLON ARRAY','declare_parameter',4,'p_declare_parameter','parse.py',353), - ('declare_parameter -> BYVAL ID COLON ID','declare_parameter',4,'p_declare_parameter','parse.py',354), - ('declare_parameter -> BYVAL ID COLON ARRAY','declare_parameter',4,'p_declare_parameter','parse.py',355), - ('declare_parameter -> ID COLON ARRAY OF ID','declare_parameter',5,'p_declare_array_parameter','parse.py',365), - ('declare_parameter -> BYREF ID COLON ARRAY OF ID','declare_parameter',6,'p_declare_array_parameter','parse.py',366), - ('declare_parameter -> BYVAL ID COLON ARRAY OF ID','declare_parameter',6,'p_declare_array_parameter','parse.py',367), - ('parameters -> parameters COMMA expression','parameters',3,'p_parameters','parse.py',377), - ('parameters -> expression','parameters',1,'p_parameters','parse.py',378), - ('statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_procedure_statement','parse.py',387), - ('statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_procedure_statement','parse.py',388), - ('statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',6,'p_procedure_statement','parse.py',389), - ('statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',6,'p_procedure_statement','parse.py',390), - ('statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_public_procedure_statement','parse.py',397), - ('statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_public_procedure_statement','parse.py',398), - ('statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_public_procedure_statement','parse.py',399), - ('statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_public_procedure_statement','parse.py',400), - ('statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_private_procedure_statement','parse.py',407), - ('statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_private_procedure_statement','parse.py',408), - ('statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_private_procedure_statement','parse.py',409), - ('statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_private_procedure_statement','parse.py',410), - ('statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN','statement',5,'p_call_procedure_statement','parse.py',417), - ('statement -> CALL ID LEFT_PAREN RIGHT_PAREN','statement',4,'p_call_procedure_statement','parse.py',418), - ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_function_statement','parse.py',425), - ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_function_statement','parse.py',426), - ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',8,'p_function_statement','parse.py',427), - ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',8,'p_function_statement','parse.py',428), - ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',10,'p_public_function_statement','parse.py',435), - ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',10,'p_public_function_statement','parse.py',436), - ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_public_function_statement','parse.py',437), - ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_public_function_statement','parse.py',438), - ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',10,'p_private_function_statement','parse.py',445), - ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',10,'p_private_function_statement','parse.py',446), - ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_private_function_statement','parse.py',447), - ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_private_function_statement','parse.py',448), - ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_arr_function_statement','parse.py',455), - ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',10,'p_arr_function_statement','parse.py',456), - ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',12,'p_public_arr_function_statement','parse.py',463), - ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_public_arr_function_statement','parse.py',464), - ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',12,'p_private_arr_function_statement','parse.py',471), - ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_private_arr_function_statement','parse.py',472), - ('expression -> ID LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',479), - ('expression -> MOD LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',480), - ('expression -> DIV LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',481), - ('expression -> ID LEFT_PAREN RIGHT_PAREN','expression',3,'p_call_function_expression','parse.py',482), - ('statement -> RETURN expression','statement',2,'p_return_statement','parse.py',495), - ('statement -> OPENFILE expression FOR READ','statement',4,'p_openfile_statement','parse.py',499), - ('statement -> OPENFILE expression FOR WRITE','statement',4,'p_openfile_statement','parse.py',500), - ('statement -> OPENFILE expression FOR APPEND','statement',4,'p_openfile_statement','parse.py',501), - ('statement -> OPENFILE expression FOR RANDOM','statement',4,'p_openfile_statement','parse.py',502), - ('statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE','statement',7,'p_readfile_array_statement','parse.py',506), - ('statement -> READFILE expression COMMA ID','statement',4,'p_readfile_statement','parse.py',510), - ('statement -> WRITEFILE expression COMMA expression','statement',4,'p_writefile_statement','parse.py',514), - ('statement -> CLOSEFILE expression','statement',2,'p_closefile_statement','parse.py',518), - ('statement -> SEEK expression COMMA expression','statement',4,'p_seek_statement','parse.py',522), - ('statement -> TYPE ID statements ENDTYPE','statement',4,'p_composite_type_declare_statement','parse.py',526), - ('expression -> expression DOT expression','expression',3,'p_composite_type_expression','parse.py',530), - ('statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN','statement',6,'p_enumerate_type_statement','parse.py',538), - ('enumerate_items -> enumerate_items COMMA ID','enumerate_items',3,'p_enumerate_items','parse.py',542), - ('enumerate_items -> ID','enumerate_items',1,'p_enumerate_items','parse.py',543), - ('expression -> POINTER expression','expression',2,'p_pointer_expression','parse.py',552), - ('expression -> expression POINTER','expression',2,'p_solve_pointer_expression','parse.py',556), - ('statement -> TYPE ID EQUAL POINTER ID','statement',5,'p_pointer_type_statement','parse.py',560), - ('statement -> PASS','statement',1,'p_pass_statement','parse.py',568), - ('statement -> IMPORT expression','statement',2,'p_import_statement','parse.py',572), - ('statement -> CLASS ID statements ENDCLASS','statement',4,'p_class_statement','parse.py',576), - ('statement -> CLASS ID INHERITS ID statements ENDCLASS','statement',6,'p_class_inherit_statement','parse.py',580), - ('expression -> NEW ID','expression',2,'p_class_expression','parse.py',584), - ('expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN','expression',5,'p_class_expression','parse.py',585), - ('statement -> TYPE ID EQUAL SET OF ID','statement',6,'p_set_statement','parse.py',592), + ('statement -> CONSTANT ID ASSIGN expression','statement',4,'p_const_declare_statement','parse.py',58), + ('statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_array_declare_statement','parse.py',62), + ('statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_array_declare_statement','parse.py',63), + ('statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_private_array_declare_statement','parse.py',67), + ('dimensions -> dimensions COMMA dimension','dimensions',3,'p_dimensions_expression','parse.py',71), + ('dimensions -> dimension','dimensions',1,'p_dimensions_expression','parse.py',72), + ('dimension -> expression COLON expression','dimension',3,'p_dimension_expression','parse.py',81), + ('statement -> expression ASSIGN expression','statement',3,'p_new_assign_statement','parse.py',93), + ('indexes -> indexes COMMA expression','indexes',3,'p_indexes','parse.py',97), + ('indexes -> expression','indexes',1,'p_indexes','parse.py',98), + ('expression -> LEFT_SQUARE array_items RIGHT_SQUARE','expression',3,'p_array_expression','parse.py',107), + ('expression -> LEFT_SQUARE RIGHT_SQUARE','expression',2,'p_array_expression','parse.py',108), + ('array_items -> array_items COMMA expression','array_items',3,'p_array_items','parse.py',115), + ('array_items -> expression','array_items',1,'p_array_items','parse.py',116), + ('statement -> INPUT expression','statement',2,'p_new_input_statement','parse.py',133), + ('statement -> OUTPUT output_expression','statement',2,'p_output_statement','parse.py',137), + ('statement -> _OUTPUT output_expression','statement',2,'p_no_end_output_statement','parse.py',141), + ('output_expression -> output_expression COMMA expression','output_expression',3,'p_output_expression','parse.py',145), + ('output_expression -> expression','output_expression',1,'p_output_expression','parse.py',146), + ('statement -> IF expression THEN statements ELSE statements ENDIF','statement',7,'p_if_statement','parse.py',155), + ('statement -> IF expression THEN statements ENDIF','statement',5,'p_if_statement','parse.py',156), + ('statement -> CASE OF expression cases ENDCASE','statement',5,'p_new_case_statement','parse.py',171), + ('cases -> cases case','cases',2,'p_cases','parse.py',175), + ('cases -> case','cases',1,'p_cases','parse.py',176), + ('case -> case_expression COLON statements SEMICOLON','case',4,'p_case','parse.py',185), + ('case -> otherwise_statement SEMICOLON','case',2,'p_case','parse.py',186), + ('case_expression -> expression TO expression','case_expression',3,'p_case_expression','parse.py',193), + ('case_expression -> expression','case_expression',1,'p_case_expression','parse.py',194), + ('otherwise_statement -> OTHERWISE COLON statements','otherwise_statement',3,'p_otherwise_statement','parse.py',201), + ('statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID','statement',11,'p_for_statement','parse.py',205), + ('statement -> FOR ID ASSIGN expression TO expression statements NEXT ID','statement',9,'p_for_statement','parse.py',206), + ('statement -> REPEAT statements UNTIL expression','statement',4,'p_repeat_statement','parse.py',213), + ('statement -> WHILE expression DO statements ENDWHILE','statement',5,'p_while_statement','parse.py',217), + ('statement -> WHILE expression statements ENDWHILE','statement',4,'p_while_statement','parse.py',218), + ('statement -> expression','statement',1,'p_expression_statement','parse.py',225), + ('expression -> ID','expression',1,'p_id_expression','parse.py',229), + ('expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE','expression',4,'p_array_id_expression','parse.py',233), + ('expression -> expression OR expression','expression',3,'p_or_expression','parse.py',237), + ('expression -> expression AND expression','expression',3,'p_and_expression','parse.py',241), + ('expression -> NOT expression','expression',2,'p_not_expression','parse.py',245), + ('expression -> expression EQUAL expression','expression',3,'p_equal_expression','parse.py',249), + ('expression -> expression NOT_EQUAL expression','expression',3,'p_not_equal_expression','parse.py',253), + ('expression -> expression LESS expression','expression',3,'p_less_expression','parse.py',257), + ('expression -> expression GREATER expression','expression',3,'p_greater_expression','parse.py',261), + ('expression -> expression LESS_EQUAL expression','expression',3,'p_less_equal_expression','parse.py',265), + ('expression -> expression GREATER_EQUAL expression','expression',3,'p_greater_equal_expression','parse.py',269), + ('expression -> expression MOD expression','expression',3,'p_mod_expression','parse.py',273), + ('expression -> expression DIV expression','expression',3,'p_exact_div_expression','parse.py',277), + ('expression -> expression MUL expression','expression',3,'p_mul_expression','parse.py',281), + ('expression -> expression N_DIV expression','expression',3,'p_div_expression','parse.py',285), + ('expression -> MINUS expression','expression',2,'p_uminus_expression','parse.py',289), + ('expression -> PLUS expression','expression',2,'p_uplus_expression','parse.py',293), + ('expression -> expression PLUS expression','expression',3,'p_plus_expression','parse.py',297), + ('expression -> expression MINUS expression','expression',3,'p_minus_expression','parse.py',301), + ('expression -> expression CONNECT expression','expression',3,'p_connect_expression','parse.py',305), + ('expression -> LEFT_PAREN expression RIGHT_PAREN','expression',3,'p_paren_expression','parse.py',310), + ('expression -> DATE','expression',1,'p_date_expression','parse.py',315), + ('expression -> BOOLEAN','expression',1,'p_boolean_expression','parse.py',319), + ('expression -> CHAR','expression',1,'p_char_expression','parse.py',323), + ('expression -> STRING','expression',1,'p_string_expression','parse.py',327), + ('expression -> REAL','expression',1,'p_real_expression','parse.py',331), + ('expression -> INTEGER','expression',1,'p_int_expression','parse.py',335), + ('declare_parameters -> declare_parameters COMMA declare_parameter','declare_parameters',3,'p_declare_parameters','parse.py',341), + ('declare_parameters -> declare_parameter','declare_parameters',1,'p_declare_parameters','parse.py',342), + ('declare_parameter -> ID COLON ID','declare_parameter',3,'p_declare_parameter','parse.py',351), + ('declare_parameter -> ID COLON ARRAY','declare_parameter',3,'p_declare_parameter','parse.py',352), + ('declare_parameter -> BYREF ID COLON ID','declare_parameter',4,'p_declare_parameter','parse.py',353), + ('declare_parameter -> BYREF ID COLON ARRAY','declare_parameter',4,'p_declare_parameter','parse.py',354), + ('declare_parameter -> BYVAL ID COLON ID','declare_parameter',4,'p_declare_parameter','parse.py',355), + ('declare_parameter -> BYVAL ID COLON ARRAY','declare_parameter',4,'p_declare_parameter','parse.py',356), + ('declare_parameter -> ID COLON ARRAY OF ID','declare_parameter',5,'p_declare_array_parameter','parse.py',366), + ('declare_parameter -> BYREF ID COLON ARRAY OF ID','declare_parameter',6,'p_declare_array_parameter','parse.py',367), + ('declare_parameter -> BYVAL ID COLON ARRAY OF ID','declare_parameter',6,'p_declare_array_parameter','parse.py',368), + ('parameters -> parameters COMMA expression','parameters',3,'p_parameters','parse.py',378), + ('parameters -> expression','parameters',1,'p_parameters','parse.py',379), + ('statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_procedure_statement','parse.py',388), + ('statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_procedure_statement','parse.py',389), + ('statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',6,'p_procedure_statement','parse.py',390), + ('statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',6,'p_procedure_statement','parse.py',391), + ('statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_public_procedure_statement','parse.py',398), + ('statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_public_procedure_statement','parse.py',399), + ('statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_public_procedure_statement','parse.py',400), + ('statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_public_procedure_statement','parse.py',401), + ('statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_private_procedure_statement','parse.py',408), + ('statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_private_procedure_statement','parse.py',409), + ('statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_private_procedure_statement','parse.py',410), + ('statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_private_procedure_statement','parse.py',411), + ('statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN','statement',5,'p_call_procedure_statement','parse.py',418), + ('statement -> CALL ID LEFT_PAREN RIGHT_PAREN','statement',4,'p_call_procedure_statement','parse.py',419), + ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_function_statement','parse.py',426), + ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_function_statement','parse.py',427), + ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',8,'p_function_statement','parse.py',428), + ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',8,'p_function_statement','parse.py',429), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',10,'p_public_function_statement','parse.py',436), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',10,'p_public_function_statement','parse.py',437), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_public_function_statement','parse.py',438), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_public_function_statement','parse.py',439), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',10,'p_private_function_statement','parse.py',446), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',10,'p_private_function_statement','parse.py',447), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_private_function_statement','parse.py',448), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_private_function_statement','parse.py',449), + ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_arr_function_statement','parse.py',456), + ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',10,'p_arr_function_statement','parse.py',457), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',12,'p_public_arr_function_statement','parse.py',464), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_public_arr_function_statement','parse.py',465), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',12,'p_private_arr_function_statement','parse.py',472), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_private_arr_function_statement','parse.py',473), + ('expression -> ID LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',480), + ('expression -> MOD LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',481), + ('expression -> DIV LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',482), + ('expression -> ID LEFT_PAREN RIGHT_PAREN','expression',3,'p_call_function_expression','parse.py',483), + ('statement -> RETURN expression','statement',2,'p_return_statement','parse.py',496), + ('statement -> OPENFILE expression FOR READ','statement',4,'p_openfile_statement','parse.py',500), + ('statement -> OPENFILE expression FOR WRITE','statement',4,'p_openfile_statement','parse.py',501), + ('statement -> OPENFILE expression FOR APPEND','statement',4,'p_openfile_statement','parse.py',502), + ('statement -> OPENFILE expression FOR RANDOM','statement',4,'p_openfile_statement','parse.py',503), + ('statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE','statement',7,'p_readfile_array_statement','parse.py',507), + ('statement -> READFILE expression COMMA ID','statement',4,'p_readfile_statement','parse.py',511), + ('statement -> WRITEFILE expression COMMA expression','statement',4,'p_writefile_statement','parse.py',515), + ('statement -> CLOSEFILE expression','statement',2,'p_closefile_statement','parse.py',519), + ('statement -> SEEK expression COMMA expression','statement',4,'p_seek_statement','parse.py',523), + ('statement -> TYPE ID statements ENDTYPE','statement',4,'p_composite_type_declare_statement','parse.py',527), + ('expression -> expression DOT expression','expression',3,'p_composite_type_expression','parse.py',531), + ('statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN','statement',6,'p_enumerate_type_statement','parse.py',539), + ('enumerate_items -> enumerate_items COMMA ID','enumerate_items',3,'p_enumerate_items','parse.py',543), + ('enumerate_items -> ID','enumerate_items',1,'p_enumerate_items','parse.py',544), + ('expression -> POINTER expression','expression',2,'p_pointer_expression','parse.py',553), + ('expression -> expression POINTER','expression',2,'p_solve_pointer_expression','parse.py',557), + ('statement -> TYPE ID EQUAL POINTER ID','statement',5,'p_pointer_type_statement','parse.py',561), + ('statement -> PASS','statement',1,'p_pass_statement','parse.py',569), + ('statement -> IMPORT expression','statement',2,'p_import_statement','parse.py',573), + ('statement -> CLASS ID statements ENDCLASS','statement',4,'p_class_statement','parse.py',577), + ('statement -> CLASS ID INHERITS ID statements ENDCLASS','statement',6,'p_class_inherit_statement','parse.py',581), + ('expression -> NEW ID','expression',2,'p_class_expression','parse.py',585), + ('expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN','expression',5,'p_class_expression','parse.py',586), + ('statement -> TYPE ID EQUAL SET OF ID','statement',6,'p_set_statement','parse.py',593), ] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..e69de29 diff --git a/scripts/README.md b/scripts/README.md index b0aa21c..9a13e38 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -115,6 +115,7 @@ ``` Time() RETURNS REAL ``` + ## [Import](./import.cpc) * `Import`: import another *cpc* file ``` diff --git a/src/AST/insert_func.py b/src/AST/insert_func.py index d8db84e..7c4b7fb 100644 --- a/src/AST/insert_func.py +++ b/src/AST/insert_func.py @@ -4,6 +4,17 @@ from ..global_var import * from ..quit import * +def _wrong_param_number(name: str, expect_num: int, get_num: int, obj): + add_error_message(f'Function `{name}` expect {expect_num} parameters, but found {get_num}', obj) + +def _wrong_param_type(name: str, expect_types: list, get_types: list, obj): + expect_type_list = [f'`{i}`' for i in expect_types] + expect_type_str = ', '.join(expect_type_list) + get_type_list = [f'`{i}`' for i in get_types] + get_type_str = ', '.join(get_type_list) + + add_error_message(f'Function `{name}` expect parameter with type {expect_type_str}, but found {get_type_str}', obj) + class Int_convert(AST_Node): def __init__(self, expression, *args, **kwargs): super().__init__(*args, **kwargs) @@ -16,7 +27,7 @@ def get_tree(self, level=0): def exe(self): result = self.expression.exe() if len(result) != 1: - add_error_message(f'`{self.type}` could only convert one parameter', self) + _wrong_param_number("INT", 1, len(result), self) return else: result = result[0] @@ -38,7 +49,7 @@ def get_tree(self, level=0): def exe(self): result = self.expression.exe() if len(result) != 1: - add_error_message(f'`{self.type}` could only convert one parameter', self) + _wrong_param_number("STRING", 1, len(result), self) return else: result = result[0] @@ -60,7 +71,7 @@ def get_tree(self, level=0): def exe(self): result = self.expression.exe() if len(result) != 1: - add_error_message(f'`{self.type}` could only convert one parameter', self) + _wrong_param_number("CHAR", 1, len(result), self) return else: result = result[0] @@ -90,7 +101,7 @@ def get_tree(self, level=0): def exe(self): result = self.expression.exe() if len(result) != 1: - add_error_message(f'`{self.type}` could only convert one parameter', self) + _wrong_param_number("REAL", 1, len(result), self) return else: result = result[0] @@ -112,7 +123,7 @@ def get_tree(self, level=0): def exe(self): result = self.expression.exe() if len(result) != 1: - add_error_message(f'`{self.type}` could only convert one parameter', self) + _wrong_param_number("BOOLEAN", 1, len(result), self) return else: result = result[0] @@ -135,7 +146,7 @@ def get_tree(self, level=0): def exe(self): parameters = self.parameters.exe() if len(parameters) != 2: - add_error_message(f'Function `{self.type}` expect 2 parameters, but found `{len(parameters)}`', self) + _wrong_param_number("LEFT", 2, len(parameters), self) return s = parameters[0] @@ -143,7 +154,7 @@ def exe(self): if s[1] == 'STRING' and x[1] == 'INTEGER': return (s[0][0:x[0]], 'STRING') else: - add_error_message(f'Function `{self.type}` expect `STRING` and `INTEGER`, but found `{s[1]}` and `{x[1]}`', self) + _wrong_param_type("LEFT", ['STRING', 'INTEGER'], [s[1], x[1]], self) class Right(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -157,7 +168,7 @@ def get_tree(self, level=0): def exe(self): parameters = self.parameters.exe() if len(parameters) != 2: - add_error_message(f'Function `{self.type}` expect 2 parameters, but found `{len(parameters)}`', self) + _wrong_param_number("RIGHT", 2, len(parameters), self) return s = parameters[0] @@ -165,7 +176,7 @@ def exe(self): if s[1] == 'STRING' and x[1] == 'INTEGER': return (s[0][len(s[0])-x[0]:], 'STRING') else: - add_error_message(f'Function `{self.type}` expect `STRING` and `INTEGER`, but found `{s[1]}` and `{x[1]}`', self) + _wrong_param_type("RIGHT", ['STRING', 'INTEGER'], [s[1], x[1]], self) class Length(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -179,7 +190,7 @@ def get_tree(self, level=0): def exe(self): parameters = self.parameters.exe() if len(parameters) != 1: - add_error_message(f'Function `{self.type}` expect 1 parameters, but found `{len(parameters)}`', self) + _wrong_param_number("LENGTH", 1, len(parameters), self) return s = parameters[0] @@ -188,7 +199,7 @@ def exe(self): elif s[1] == 'ARRAY': return (len(s), 'INTEGER') else: - add_error_message(f'Function `{self.type}` expect `STRING` or `ARRAY`, but found `{s[1]}`', self) + _wrong_param_type("LENGTH", ['STRING'], [s[1]], self) class Mid(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -202,7 +213,7 @@ def get_tree(self, level=0): def exe(self): parameters = self.parameters.exe() if len(parameters) != 3: - add_error_message(f'Function `{self.type}` expect 3 parameters, but found `{len(parameters)}`', self) + _wrong_param_number("MID", 3, len(parameters), self) return s = parameters[0] @@ -211,7 +222,7 @@ def exe(self): if s[1] == 'STRING' and x[1] == 'INTEGER' and y[1] == 'INTEGER': return (s[0][x[0]-1:x[0]+y[0]-1], 'STRING') else: - add_error_message(f'Function `{self.type}` expect `STRING` and `INTEGER` and `INTEGER`, but found `{self.s[1]}` and `{self.x[1]}` and `{self.y[1]}`', self) + _wrong_param_type("MID", ['STRING', 'INTEGER', 'INTEGER'], [s[1], x[1], y[1], self]) class Lcase(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -223,18 +234,21 @@ def get_tree(self, level=0): return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) def exe(self): - parameters = self.parameters.exe() - if len(parameters) != 1: - add_error_message(f'Function `{self.type}` expect 1 parameters, but found `{len(parameters)}`', self) - return - - c = parameters[0] - if c[1] == 'CHAR': - return (c[0].lower(), 'CHAR') - elif c[1] == 'STRING': - return (c[0].lower(), 'STRING') + if self.parameters: + parameters = self.parameters.exe() + if len(parameters) != 1: + _wrong_param_number(self.type, 1, len(parameters), self) + return + + c = parameters[0] + if c[1] == 'CHAR': + return (c[0].lower(), 'CHAR') + elif c[1] == 'STRING': + return (c[0].lower(), 'STRING') + else: + _wrong_param_type(self.type, ['CHAR', 'STRING'], [c[1]], self) else: - add_error_message(f'Function `{self.type}` expect `CHAR`, but found `{c[1]}`', self) + _wrong_param_number(self.type, 1, 0, self) class Ucase(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -246,18 +260,21 @@ def get_tree(self, level=0): return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) def exe(self): - parameters = self.parameters.exe() - if len(parameters) != 1: - add_error_message(f'Function `{self.type}` expect 1 parameters, but found `{len(parameters)}`', self) - return - - c = parameters[0] - if c[1] == 'CHAR': - return (c[0].upper(), 'CHAR') - elif c[1] == 'STRING': - return (c[0].upper(), 'STRING') + if self.parameters: + parameters = self.parameters.exe() + if len(parameters) != 1: + _wrong_param_number(self.type, 1, len(parameters), self) + return + + c = parameters[0] + if c[1] == 'CHAR': + return (c[0].upper(), 'CHAR') + elif c[1] == 'STRING': + return (c[0].upper(), 'STRING') + else: + _wrong_param_type(self.type, ['CHAR', 'STRING'], [c[1]], self) else: - add_error_message(f'Function `{self.type}` expect `CHAR`, but found `{c[1]}`', self) + _wrong_param_number(self.type, 1, 0, self) class Rand(AST_Node): @@ -273,14 +290,14 @@ def get_tree(self, level=0): def exe(self): parameters = self.parameters.exe() if len(parameters) != 1: - add_error_message(f'Function `{self.type}` expect 1 parameters, but found `{len(parameters)}`', self) + _wrong_param_number("RAND", 1, len(parameters), self) return n = parameters[0] if n[1] == 'INTEGER': return ( randint(0, n[0]*self.rate)/self.rate , "REAL") else: - add_error_message(f'Function `{self.type}` expect `CHAR`, but found `{n[1]}`', self) + _wrong_param_type("RAND", ['INTEGER'], [n[1]], self) class Eof(AST_Node): @@ -295,7 +312,7 @@ def get_tree(self, level=0): def exe(self): parameters = self.parameters.exe() if len(parameters) != 1: - add_error_message(f'Function `{self.type}` expect 1 parameters, but found `{len(parameters)}`', self) + _wrong_param_number("EOF", 1, len(parameters), self) return fp = parameters[0] @@ -307,7 +324,7 @@ def exe(self): else: return (False, 'BOOLEAN') else: - add_error_message(f'Expect `STRING` for a file path, but found `{fp[1]}`', self) + _wrong_param_type("EOF", ['STRING'], [fp[1]], self) class Pow(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -319,11 +336,17 @@ def get_tree(self, level=0): return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) def exe(self): - parameters = self.parameters.exe() - try: - return (parameters[0][0] ** parameters[1][0], 'REAL') - except: - add_error_message(f'Cannot power `{parameters[0][1]}` with `{parameters[1][1]}`', self) + if self.parameters: + parameters = self.parameters.exe() + if len(self.parameters) == 2: + p = parameters[0] + if p[1] == 'INTEGER' or p[1] == 'REAL': + try: + return (parameters[0][0] ** parameters[1][0], 'REAL') + except: + add_error_message(f'Cannot power `{parameters[0][1]}` with `{parameters[1][1]}`', self) + else: + _wrong_param_type("POW", ['REAL'], [p[1]], self) class Exit(AST_Node): def __init__(self, parameters=None, *args, **kwargs): @@ -359,13 +382,15 @@ def exe(self): if self.parameters: parameters = self.parameters.exe() if len(self.parameters) == 1: - return (round(parameters[0][0]), 'INTEGER') + if parameters[0][1] == 'INTEGER': + return (round(parameters[0][0]), 'INTEGER') elif len(self.parameters) == 2: - return (round(parameters[0][0], parameters[1][0]), 'REAL') + if parameters[0][1] == 'REAL' and parameters[1][1] == 'INTEGER': + return (round(parameters[0][0], parameters[1][0]), 'REAL') else: - add_error_message(f'Round only have 1 or 2 parameters, but found {len(self.parameters)}', self) + add_error_message(f'Function `ROUND` expect 1 or 2 parameters, but found {len(self.parameters)}', self) else: - add_error_message(f'Round only have 1 or 2 parameters, but found 0', self) + add_error_message(f'Function `ROUND` expect 1 or 2 parameters, but found 0', self) class Python(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -387,7 +412,7 @@ def exe(self): try: global_space[self.parameters.parameters[i].id] = parameters[i][0] except: - add_error_message(f'Pythons interface only accept variables with basic data types', self) + add_error_message(f'`PYTHON` interface only accept variables with basic data types', self) return_name = '_result' global_space[return_name] = None @@ -400,7 +425,7 @@ def exe(self): return (global_space[return_name], None) # None 表示未知类型 else: - add_error_message(f'Python interface only have 1 parameters, but found 0', self) + add_error_message(f'`PYTHON` interface only have 1 parameters, but found 0', self) class Mod(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -417,9 +442,9 @@ def exe(self): if len(self.parameters) == 2: return (parameters[0][0] % parameters[1][0], 'REAL') else: - add_error_message(f'Mod only have 2 parameters, but found {len(self.parameters)}') + _wrong_param_number("MOD", 2, len(self.parameters), self) else: - add_error_message(f'Mod only have 2 parameters, but found 0', self) + _wrong_param_number("MOD", 2, 0, self) class Div(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -436,9 +461,9 @@ def exe(self): if len(self.parameters) == 2: return (parameters[0][0] // parameters[1][0], 'REAL') else: - add_error_message(f'Mod only have 2 parameters, but found {len(self.parameters)}') + _wrong_param_number("DIV", 2, len(self.parameters), self) else: - add_error_message(f'Mod only have 2 parameters, but found 0', self) + _wrong_param_number("DIV", 2, len(self.parameters), self) class VarType(AST_Node): def __init__(self, parameters, *args, **kwargs): @@ -455,9 +480,151 @@ def exe(self): if len(parameters) == 1: return (parameters[0][1], 'STRING') else: - add_error_message(f'Type only have 1 parameters, but found {len(parameters)}', self) + _wrong_param_number("VARTYPE", 1, len(parameters), self) + else: + _wrong_param_number("VARTYPE", 1, 0, self) + +class ToUpper(Ucase): + def __init__(self, parameters, *args, **kwargs): + super().__init__(parameters, *args, **kwargs) + self.type = 'TO_UPPER' + +class ToLower(Lcase): + def __init__(self, parameters, *args, **kwargs): + super().__init__(parameters, *args, **kwargs) + self.type = 'TO_LOWER' + +class Day(AST_Node): + def __init__(self, parameters, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'DAY' + self.parameters = parameters + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) + + def exe(self): + if self.parameters: + parameters = self.parameters.exe() + if len(parameters) == 1: + p = parameters[0] + if p[1] == 'DATE': + return (int(p[0].split('/')[0]), 'INTEGER') + else: + _wrong_param_type("DAY", ['DATE'], [p[1]], self) + else: + _wrong_param_number("DAY", 1, len(parameters), self) + else: + _wrong_param_number("DAY", 1, 0, self) + +class Month(AST_Node): + def __init__(self, parameters, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'MONTH' + self.parameters = parameters + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) + + def exe(self): + if self.parameters: + parameters = self.parameters.exe() + if len(parameters) == 1: + p = parameters[0] + if p[1] == 'DATE': + return (int(p[0].split('/')[1]), 'INTEGER') + else: + _wrong_param_type("MONTH", ['DATE'], [p[1]], self) + else: + _wrong_param_number("MONTH", 1, len(parameters), self) + else: + _wrong_param_number("MONTH", 1, 0, self) + +class Year(AST_Node): + def __init__(self, parameters, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'YEAR' + self.parameters = parameters + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) + + def exe(self): + if self.parameters: + parameters = self.parameters.exe() + if len(parameters) == 1: + p = parameters[0] + if p[1] == 'DATE': + return (int(p[0].split('/')[2]), 'INTEGER') + else: + _wrong_param_type("YEAR", ['DATE'], [p[1]], self) + else: + _wrong_param_number("YEAR", 1, len(parameters), self) + else: + _wrong_param_number("YEAR", 1, 0, self) + +class DayIndex(AST_Node): + def __init__(self, parameters, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'DAY_INDEX' + self.parameters = parameters + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) + + def exe(self): + if self.parameters: + parameters = self.parameters.exe() + if len(parameters) == 1: + p = parameters[0] + if p[1] == 'DATE': + from datetime import datetime + return (datetime.strptime(p[0], '%d/%m/%Y').weekday() + 1) % 7 + 1 + else: + _wrong_param_type("DAYINDEX", ['DATE'], [p[1]], self) + else: + _wrong_param_number("DAYINDEX", 1, len(parameters), self) else: - add_error_message(f'Type only have 1 parameters, but found 0', self) + _wrong_param_number("DAYINDEX", 1, 0, self) + +class SetDate(AST_Node): + def __init__(self, parameters, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'SET_DATE' + self.parameters = parameters + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + '\n' + self.parameters.get_tree(level+1) + + def exe(self): + if self.parameters: + parameters = self.parameters.exe() + if len(self.parameters) == 3: + p = parameters[0] + if p[1] == 'INTEGER': + return (f'{parameters[0][0]:02}/{parameters[1][0]:02}/{parameters[2][0]:04}', 'DATE') + else: + _wrong_param_type("SETDATE", ['INTEGER', 'INTEGER', 'INTEGER'], [p[1]], self) + else: + _wrong_param_number("SETDATE", 3, len(parameters), self) + else: + _wrong_param_number("SETDATE", 3, 0, self) + +class Today(AST_Node): + def __init__(self, parameters, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'TODAY' + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + + def exe(self): + if not self.parameters: + from datetime import datetime + return (datetime.now().strftime('%d/%m/%Y'), 'DATE') + else: + parameters = self.parameters.exe() + _wrong_param_number("TODAY", 0, len(parameters), self) insert_functions = { "INT": Int_convert, @@ -482,4 +649,12 @@ def exe(self): "MOD": Mod, "DIV": Div, "VARTYPE": VarType, + "TO_UPPER": ToUpper, + "TO_LOWER": ToLower, + "DAY": Day, + "MONTH": Month, + "YEAR": Year, + "DAYINDEX": DayIndex, + "SETDATE": SetDate, + "TODAY": Today } diff --git a/src/data_types.py b/src/data_types.py index 8a845df..85de2f8 100644 --- a/src/data_types.py +++ b/src/data_types.py @@ -93,10 +93,10 @@ def __getitem__(self, key): if key == 1: return self.type else: - return (self.year, self.month, self.day) + return str(self) def set_value(self, new_value): - self.year, self.month, self.day = new_value + self.day, self.month, self.year = str(new_value).split('/') class ARRAY(base): def __init__(self, value={}, *args, **kwargs): diff --git a/src/parse.py b/src/parse.py index c8ffe89..333b6e3 100644 --- a/src/parse.py +++ b/src/parse.py @@ -54,7 +54,8 @@ def p_private_declare_statement(p): p[0] = AST.Variable(p[2], p[4], private=True, p=p) def p_const_declare_statement(p): - """statement : CONSTANT ID EQUAL expression""" + """statement : CONSTANT ID EQUAL expression + | CONSTANT ID ASSIGN expression""" p[0] = AST.Constant(p[2], p[4], p=p) def p_array_declare_statement(p): @@ -482,7 +483,7 @@ def p_call_function_expression(p): | ID LEFT_PAREN RIGHT_PAREN""" if len(p) == 4: if p[1] in insert_functions: - p[0] = insert_functions[p[1]](p=p) + p[0] = insert_functions[p[1]](None, p=p) else: p[0] = AST.Call_function(p[1], p=p) else: