diff --git a/README.md b/README.md index 57198d9..a9eea39 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ It runs the entire file if `filepath` is provided, otherwise, it enters playgrou | `-h` | `--help` | To show the help page | | `-k` | `--keywords` | To show all the keywords | | `-m` | `--migrate` | To migrate `.p` files to `.cpc` in a specified directory | +| `-n` | `--notification` | To show notification published by developer (only if this is not expired) | | `-p` | `--parse` | To show parse information during running | | `-t` | `--time` | To show the time for the script to run | | `-u` | `--update` | To update the version | @@ -108,6 +109,15 @@ It runs the entire file if `filepath` is provided, otherwise, it enters playgrou - `recursion-limit(rl)` all integer number as the recursion depth limit of the interpreter. +- `integrity-protection` + + - `true`: Enable integrity protection. + - `false`: Disable integrity protection. + + > Integrity Protection prevent any accidental or malicious modification of the interpreter. + + > This protection will be automatically disabled in developer mode. + - `dev` - `true`: Enable developer mode. diff --git a/README_zh.md b/README_zh.md index d735d2e..1446436 100644 --- a/README_zh.md +++ b/README_zh.md @@ -56,6 +56,7 @@ cpc [file_paths] [options] | `-h` | `--help` | 显示帮助页面 | | `-k` | `--keywords` | 显示所有的关键字 | | `-m` | `--migrate` | 将一个目录中的所有 `.p` 文件切换为 `.cpc` | +| `-n` | `--notification` | 显示由开发者发布的未过期通知 | | `-p` | `--parse` | 显示所有解析的信息 | | `-t` | `--time` | 显示运行脚本花费的时间 | | `-u` | `--update` | 更新此解释器的版本 | @@ -100,6 +101,15 @@ cpc [file_paths] [options] - `true`: 启用开发者模式。 - `false`: 关闭开发者模式。 +- `integrity-protection` + + - `true`: 启用完整性保护。 + - `false`: 禁用完整性保护。 + + > 完整性保护将会阻止任何意外或恶意的解释器修改。 + + > 此保护将在开发者模式下被自动禁用。 + - 开发者选项 - `dev.simulate-update` diff --git a/main.py b/main.py index 2459a07..35c4396 100755 --- a/main.py +++ b/main.py @@ -22,6 +22,7 @@ from src.line_commands import run_command from src.update import update from src.update import update_expired +from src.update import integrity_protection import sys import os @@ -193,6 +194,9 @@ def main(input_=None, output_=None, addition_file_name=None): if addition_file_name: file_paths.add(addition_file_name) + if not config.get_config('dev') and config.get_config('integrity-protection'): + integrity_protection() + #自动更新 if config.get_config('dev.simulate-update') or (config.get_config('auto-update') and not config.get_config('dev') and update_expired()): update() diff --git a/notification/notification.json b/notification/notification.json new file mode 100644 index 0000000..e28e728 --- /dev/null +++ b/notification/notification.json @@ -0,0 +1,9 @@ +{ + "type": "deprecate", + "branch": ["stable", "nightly", "dev"], + "expiry_date": "2024-04-05", + "deprecation": { + "keyword": ["Ucase", "Lcase"], + "deprecation_date": "2024-03-29" + } +} diff --git a/notification/template.json b/notification/template.json new file mode 100644 index 0000000..1d82fee --- /dev/null +++ b/notification/template.json @@ -0,0 +1,10 @@ +{ + "type": "add|update|deprecate", + "branch": ["stable", "nightly", "dev"], + "expiry_date": "YYYY-MM-DD", + "content": "Update Content", + "deprecation": { + "keyword": ["Deprecated Keyword 1", "Deprecated Keyword 2"], + "deprecation_date": "YYYY-MM-DD" + } +} diff --git a/parser.out b/parser.out index 039d17e..b98e957 100644 --- a/parser.out +++ b/parser.out @@ -18,260 +18,266 @@ Rule 2 statements -> statement Rule 3 statement -> DELETE ID 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 -> 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 +Rule 6 statement -> DECLARE ids COLON ID +Rule 7 statement -> PUBLIC ids COLON ID +Rule 8 ids -> ids COMMA ID +Rule 9 ids -> ID +Rule 10 statement -> PRIVATE ID COLON ID +Rule 11 statement -> PRIVATE ids COLON ID +Rule 12 statement -> CONSTANT ID EQUAL expression +Rule 13 statement -> CONSTANT ID ASSIGN expression +Rule 14 statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID +Rule 15 statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID +Rule 16 statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID +Rule 17 dimensions -> dimensions COMMA dimension +Rule 18 dimensions -> dimension +Rule 19 dimension -> expression COLON expression +Rule 20 statement -> expression ASSIGN expression +Rule 21 indexes -> indexes COMMA expression +Rule 22 indexes -> expression +Rule 23 expression -> LEFT_SQUARE array_items RIGHT_SQUARE +Rule 24 expression -> LEFT_SQUARE RIGHT_SQUARE +Rule 25 array_items -> array_items COMMA expression +Rule 26 array_items -> expression +Rule 27 statement -> INPUT expression +Rule 28 statement -> OUTPUT output_expression +Rule 29 statement -> _OUTPUT output_expression +Rule 30 output_expression -> output_expression COMMA expression +Rule 31 output_expression -> expression +Rule 32 statement -> IF expression THEN statements ELSE statements ENDIF +Rule 33 statement -> IF expression THEN statements ENDIF +Rule 34 statement -> CASE OF expression cases ENDCASE +Rule 35 cases -> cases case +Rule 36 cases -> case +Rule 37 case -> case_expression COLON statements SEMICOLON +Rule 38 case -> otherwise_statement SEMICOLON +Rule 39 case_expression -> expression TO expression +Rule 40 case_expression -> expression +Rule 41 otherwise_statement -> OTHERWISE COLON statements +Rule 42 statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID +Rule 43 statement -> FOR ID ASSIGN expression TO expression statements NEXT ID +Rule 44 statement -> REPEAT statements UNTIL expression +Rule 45 statement -> WHILE expression DO statements ENDWHILE +Rule 46 statement -> WHILE expression statements ENDWHILE +Rule 47 statement -> expression +Rule 48 expression -> ID +Rule 49 expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE +Rule 50 expression -> expression OR expression +Rule 51 expression -> expression AND expression +Rule 52 expression -> NOT expression +Rule 53 expression -> expression EQUAL expression +Rule 54 expression -> expression NOT_EQUAL expression +Rule 55 expression -> expression LESS expression +Rule 56 expression -> expression GREATER expression +Rule 57 expression -> expression LESS_EQUAL expression +Rule 58 expression -> expression GREATER_EQUAL expression +Rule 59 expression -> expression MOD expression +Rule 60 expression -> expression DIV expression +Rule 61 expression -> expression MUL expression +Rule 62 expression -> expression N_DIV expression +Rule 63 expression -> MINUS expression +Rule 64 expression -> PLUS expression +Rule 65 expression -> expression PLUS expression +Rule 66 expression -> expression MINUS expression +Rule 67 expression -> expression CONNECT expression +Rule 68 expression -> LEFT_PAREN expression RIGHT_PAREN +Rule 69 expression -> DATE +Rule 70 expression -> BOOLEAN +Rule 71 expression -> CHAR +Rule 72 expression -> STRING +Rule 73 expression -> REAL +Rule 74 expression -> INTEGER +Rule 75 declare_parameters -> declare_parameters COMMA declare_parameter +Rule 76 declare_parameters -> declare_parameter +Rule 77 declare_parameter -> ID COLON ID +Rule 78 declare_parameter -> ID COLON ARRAY +Rule 79 declare_parameter -> BYREF ID COLON ID +Rule 80 declare_parameter -> BYREF ID COLON ARRAY +Rule 81 declare_parameter -> BYVAL ID COLON ID +Rule 82 declare_parameter -> BYVAL ID COLON ARRAY +Rule 83 declare_parameter -> ID COLON ARRAY OF ID +Rule 84 declare_parameter -> BYREF ID COLON ARRAY OF ID +Rule 85 declare_parameter -> BYVAL ID COLON ARRAY OF ID +Rule 86 parameters -> parameters COMMA expression +Rule 87 parameters -> expression +Rule 88 statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 89 statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 90 statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 91 statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 92 statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 93 statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 94 statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 95 statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 96 statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 97 statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE +Rule 98 statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 99 statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE +Rule 100 statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN +Rule 101 statement -> CALL ID LEFT_PAREN RIGHT_PAREN +Rule 102 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 103 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 104 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 105 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 106 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 107 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 108 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 109 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 110 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 111 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 112 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION +Rule 113 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION +Rule 114 statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 115 statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 116 statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 117 statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 118 statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 119 statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION +Rule 120 expression -> ID LEFT_PAREN parameters RIGHT_PAREN +Rule 121 expression -> MOD LEFT_PAREN parameters RIGHT_PAREN +Rule 122 expression -> DIV LEFT_PAREN parameters RIGHT_PAREN +Rule 123 expression -> ID LEFT_PAREN RIGHT_PAREN +Rule 124 statement -> RETURN expression +Rule 125 statement -> OPENFILE expression FOR READ +Rule 126 statement -> OPENFILE expression FOR WRITE +Rule 127 statement -> OPENFILE expression FOR APPEND +Rule 128 statement -> OPENFILE expression FOR RANDOM +Rule 129 statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE +Rule 130 statement -> READFILE expression COMMA ID +Rule 131 statement -> WRITEFILE expression COMMA expression +Rule 132 statement -> CLOSEFILE expression +Rule 133 statement -> SEEK expression COMMA expression +Rule 134 statement -> TYPE ID statements ENDTYPE +Rule 135 expression -> expression DOT expression +Rule 136 statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN +Rule 137 enumerate_items -> enumerate_items COMMA ID +Rule 138 enumerate_items -> ID +Rule 139 expression -> POINTER expression +Rule 140 expression -> expression POINTER +Rule 141 statement -> TYPE ID EQUAL POINTER ID +Rule 142 statement -> PASS +Rule 143 statement -> IMPORT expression +Rule 144 statement -> CLASS ID statements ENDCLASS +Rule 145 statement -> CLASS ID INHERITS ID statements ENDCLASS +Rule 146 expression -> NEW ID +Rule 147 expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN +Rule 148 statement -> TYPE ID EQUAL SET OF ID Terminals, with rules where they appear -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 +AND : 51 +APPEND : 127 +ARRAY : 14 15 16 78 80 82 83 84 85 103 105 107 109 111 113 114 115 116 117 118 119 +ASSIGN : 13 20 42 43 +BOOLEAN : 70 +BYREF : 79 80 84 +BYVAL : 81 82 85 +CALL : 100 101 +CASE : 34 +CHAR : 71 +CLASS : 144 145 +CLOSEFILE : 132 +COLON : 4 5 6 7 10 11 14 15 16 19 37 41 77 78 79 80 81 82 83 84 85 +COMMA : 8 17 21 25 30 75 86 129 130 131 133 137 +CONNECT : 67 +CONSTANT : 12 13 +DATE : 69 +DECLARE : 4 6 14 DEFINE : DELETE : 3 -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 +DIV : 60 122 +DO : 45 +DOT : 135 +ELSE : 32 +ENDCASE : 34 +ENDCLASS : 144 145 +ENDFUNCTION : 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 +ENDIF : 32 33 +ENDPROCEDURE : 88 89 90 91 92 93 94 95 96 97 98 99 +ENDTYPE : 134 +ENDWHILE : 45 46 +EQUAL : 12 53 136 141 148 +FOR : 42 43 125 126 127 128 +FUNCTION : 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 GETRECORD : -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 +GREATER : 56 +GREATER_EQUAL : 58 +ID : 3 4 4 5 5 6 7 8 9 10 10 11 12 13 14 14 15 15 16 16 42 42 43 43 48 49 77 77 78 79 79 80 81 81 82 83 83 84 84 85 85 88 90 92 94 96 98 100 101 102 102 103 104 104 105 106 106 107 108 108 109 110 110 111 112 112 113 114 114 115 115 116 116 117 117 118 118 119 119 120 123 129 130 134 136 137 138 141 141 144 145 145 146 147 148 148 +IF : 32 33 +IMPORT : 143 +INHERITS : 145 +INPUT : 27 +INTEGER : 74 LEFT_BRACE : -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 +LEFT_PAREN : 68 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 119 120 121 122 123 136 147 +LEFT_SQUARE : 14 15 16 23 24 49 129 +LESS : 55 +LESS_EQUAL : 57 +MINUS : 63 66 +MOD : 59 121 +MUL : 61 +NEW : 89 91 93 95 97 99 146 147 NEWLINE : -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 +NEXT : 42 43 +NOT : 52 +NOT_EQUAL : 54 +N_DIV : 62 +OF : 14 15 16 34 83 84 85 114 115 116 117 118 119 148 +OPENFILE : 125 126 127 128 +OR : 50 +OTHERWISE : 41 +OUTPUT : 28 +PASS : 142 +PLUS : 64 65 +POINTER : 139 140 141 +PRIVATE : 10 11 16 96 97 98 99 110 111 112 113 118 119 +PROCEDURE : 88 89 90 91 92 93 94 95 96 97 98 99 +PUBLIC : 5 7 15 92 93 94 95 106 107 108 109 116 117 PUTRECORD : -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 +RANDOM : 128 +READ : 125 +READFILE : 129 130 +REAL : 73 +REPEAT : 44 +RETURN : 124 +RETURNS : 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 RIGHT_BRACE : -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 +RIGHT_PAREN : 68 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 119 120 121 122 123 136 147 +RIGHT_SQUARE : 14 15 16 23 24 49 129 +SEEK : 133 +SEMICOLON : 37 38 +SET : 148 +STEP : 42 +STRING : 72 SUPER : -THEN : 27 28 -TO : 34 37 38 -TYPE : 129 131 136 143 -UNTIL : 39 -WHILE : 40 41 -WRITE : 121 -WRITEFILE : 126 -_OUTPUT : 24 +THEN : 32 33 +TO : 39 42 43 +TYPE : 134 136 141 148 +UNTIL : 44 +WHILE : 45 46 +WRITE : 126 +WRITEFILE : 131 +_OUTPUT : 29 error : Nonterminals, with rules where they appear -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 +array_items : 23 25 +case : 35 36 +case_expression : 37 +cases : 34 35 +declare_parameter : 75 76 +declare_parameters : 75 88 89 92 93 96 97 102 103 106 107 110 111 114 116 118 +dimension : 17 18 +dimensions : 14 15 16 17 +enumerate_items : 136 137 +expression : 12 13 19 19 20 20 21 22 25 26 27 30 31 32 33 34 39 39 40 42 42 42 43 43 44 45 46 47 50 50 51 51 52 53 53 54 54 55 55 56 56 57 57 58 58 59 59 60 60 61 61 62 62 63 64 65 65 66 66 67 67 68 86 87 124 125 126 127 128 129 130 131 131 132 133 133 135 135 139 140 143 +ids : 6 7 8 11 +indexes : 21 49 129 +otherwise_statement : 38 +output_expression : 28 29 30 +parameters : 86 100 120 121 122 147 statement : 1 2 -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 +statements : 1 32 32 33 37 41 42 43 44 45 46 88 89 90 91 92 93 94 95 96 97 98 99 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 134 144 145 0 Parsing method: LALR @@ -283,113 +289,116 @@ state 0 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -445,113 +454,116 @@ state 1 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -667,296 +679,308 @@ state 3 state 4 - (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 + (48) expression -> ID . + (49) expression -> ID . LEFT_SQUARE indexes RIGHT_SQUARE + (120) expression -> ID . LEFT_PAREN parameters RIGHT_PAREN + (123) 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 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 .) + ASSIGN reduce using rule 48 (expression -> ID .) + OR reduce using rule 48 (expression -> ID .) + AND reduce using rule 48 (expression -> ID .) + EQUAL reduce using rule 48 (expression -> ID .) + NOT_EQUAL reduce using rule 48 (expression -> ID .) + LESS reduce using rule 48 (expression -> ID .) + GREATER reduce using rule 48 (expression -> ID .) + LESS_EQUAL reduce using rule 48 (expression -> ID .) + GREATER_EQUAL reduce using rule 48 (expression -> ID .) + MOD reduce using rule 48 (expression -> ID .) + DIV reduce using rule 48 (expression -> ID .) + MUL reduce using rule 48 (expression -> ID .) + N_DIV reduce using rule 48 (expression -> ID .) + PLUS reduce using rule 48 (expression -> ID .) + MINUS reduce using rule 48 (expression -> ID .) + CONNECT reduce using rule 48 (expression -> ID .) + DOT reduce using rule 48 (expression -> ID .) + POINTER reduce using rule 48 (expression -> ID .) + DELETE reduce using rule 48 (expression -> ID .) + DECLARE reduce using rule 48 (expression -> ID .) + PUBLIC reduce using rule 48 (expression -> ID .) + PRIVATE reduce using rule 48 (expression -> ID .) + CONSTANT reduce using rule 48 (expression -> ID .) + INPUT reduce using rule 48 (expression -> ID .) + OUTPUT reduce using rule 48 (expression -> ID .) + _OUTPUT reduce using rule 48 (expression -> ID .) + IF reduce using rule 48 (expression -> ID .) + CASE reduce using rule 48 (expression -> ID .) + FOR reduce using rule 48 (expression -> ID .) + REPEAT reduce using rule 48 (expression -> ID .) + WHILE reduce using rule 48 (expression -> ID .) + PROCEDURE reduce using rule 48 (expression -> ID .) + CALL reduce using rule 48 (expression -> ID .) + FUNCTION reduce using rule 48 (expression -> ID .) + RETURN reduce using rule 48 (expression -> ID .) + OPENFILE reduce using rule 48 (expression -> ID .) + READFILE reduce using rule 48 (expression -> ID .) + WRITEFILE reduce using rule 48 (expression -> ID .) + CLOSEFILE reduce using rule 48 (expression -> ID .) + SEEK reduce using rule 48 (expression -> ID .) + TYPE reduce using rule 48 (expression -> ID .) + PASS reduce using rule 48 (expression -> ID .) + IMPORT reduce using rule 48 (expression -> ID .) + CLASS reduce using rule 48 (expression -> ID .) + ID reduce using rule 48 (expression -> ID .) + NOT reduce using rule 48 (expression -> ID .) + DATE reduce using rule 48 (expression -> ID .) + BOOLEAN reduce using rule 48 (expression -> ID .) + CHAR reduce using rule 48 (expression -> ID .) + STRING reduce using rule 48 (expression -> ID .) + REAL reduce using rule 48 (expression -> ID .) + INTEGER reduce using rule 48 (expression -> ID .) + NEW reduce using rule 48 (expression -> ID .) + $end reduce using rule 48 (expression -> ID .) + RIGHT_SQUARE reduce using rule 48 (expression -> ID .) + COMMA reduce using rule 48 (expression -> ID .) + UNTIL reduce using rule 48 (expression -> ID .) + ENDWHILE reduce using rule 48 (expression -> ID .) + ENDTYPE reduce using rule 48 (expression -> ID .) + ENDCLASS reduce using rule 48 (expression -> ID .) + ELSE reduce using rule 48 (expression -> ID .) + ENDIF reduce using rule 48 (expression -> ID .) + ENDPROCEDURE reduce using rule 48 (expression -> ID .) + SEMICOLON reduce using rule 48 (expression -> ID .) + NEXT reduce using rule 48 (expression -> ID .) + ENDFUNCTION reduce using rule 48 (expression -> ID .) + THEN reduce using rule 48 (expression -> ID .) + DO reduce using rule 48 (expression -> ID .) + RIGHT_PAREN reduce using rule 48 (expression -> ID .) + OTHERWISE reduce using rule 48 (expression -> ID .) + TO reduce using rule 48 (expression -> ID .) + COLON reduce using rule 48 (expression -> ID .) + STEP reduce using rule 48 (expression -> ID .) LEFT_SQUARE shift and go to state 48 LEFT_PAREN shift and go to state 49 - ! LEFT_SQUARE [ reduce using rule 43 (expression -> ID .) ] - ! LEFT_PAREN [ reduce using rule 43 (expression -> ID .) ] + ! LEFT_SQUARE [ reduce using rule 48 (expression -> ID .) ] + ! LEFT_PAREN [ reduce using rule 48 (expression -> ID .) ] state 5 (4) statement -> DECLARE . ID COLON ID - (9) statement -> DECLARE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (6) statement -> DECLARE . ids COLON ID + (14) statement -> DECLARE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (8) ids -> . ids COMMA ID + (9) ids -> . ID ID shift and go to state 50 + ids shift and go to state 51 state 6 (5) statement -> PUBLIC . ID COLON ID - (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 - FUNCTION shift and go to state 53 - + (7) statement -> PUBLIC . ids COLON ID + (15) statement -> PUBLIC . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (92) statement -> PUBLIC . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> PUBLIC . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PUBLIC . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> PUBLIC . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (106) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> PUBLIC . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (8) ids -> . ids COMMA ID + (9) ids -> . ID + + ID shift and go to state 52 + PROCEDURE shift and go to state 54 + FUNCTION shift and go to state 55 + + ids shift and go to state 53 state 7 - (6) statement -> PRIVATE . ID COLON ID - (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 - FUNCTION shift and go to state 56 - + (10) statement -> PRIVATE . ID COLON ID + (11) statement -> PRIVATE . ids COLON ID + (16) statement -> PRIVATE . ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (96) statement -> PRIVATE . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> PRIVATE . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> PRIVATE . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> PRIVATE . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (110) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> PRIVATE . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (8) ids -> . ids COMMA ID + (9) ids -> . ID + + ID shift and go to state 56 + PROCEDURE shift and go to state 58 + FUNCTION shift and go to state 59 + + ids shift and go to state 57 state 8 - (7) statement -> CONSTANT . ID EQUAL expression - (8) statement -> CONSTANT . ID ASSIGN expression + (12) statement -> CONSTANT . ID EQUAL expression + (13) statement -> CONSTANT . ID ASSIGN expression - ID shift and go to state 57 + ID shift and go to state 60 state 9 - (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 + (20) statement -> expression . ASSIGN expression + (47) statement -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 - ASSIGN shift and go to state 58 - 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 - 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 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 .) ] + ASSIGN shift and go to state 61 + DELETE reduce using rule 47 (statement -> expression .) + DECLARE reduce using rule 47 (statement -> expression .) + PUBLIC reduce using rule 47 (statement -> expression .) + PRIVATE reduce using rule 47 (statement -> expression .) + CONSTANT reduce using rule 47 (statement -> expression .) + INPUT reduce using rule 47 (statement -> expression .) + OUTPUT reduce using rule 47 (statement -> expression .) + _OUTPUT reduce using rule 47 (statement -> expression .) + IF reduce using rule 47 (statement -> expression .) + CASE reduce using rule 47 (statement -> expression .) + FOR reduce using rule 47 (statement -> expression .) + REPEAT reduce using rule 47 (statement -> expression .) + WHILE reduce using rule 47 (statement -> expression .) + PROCEDURE reduce using rule 47 (statement -> expression .) + CALL reduce using rule 47 (statement -> expression .) + FUNCTION reduce using rule 47 (statement -> expression .) + RETURN reduce using rule 47 (statement -> expression .) + OPENFILE reduce using rule 47 (statement -> expression .) + READFILE reduce using rule 47 (statement -> expression .) + WRITEFILE reduce using rule 47 (statement -> expression .) + CLOSEFILE reduce using rule 47 (statement -> expression .) + SEEK reduce using rule 47 (statement -> expression .) + TYPE reduce using rule 47 (statement -> expression .) + PASS reduce using rule 47 (statement -> expression .) + IMPORT reduce using rule 47 (statement -> expression .) + CLASS reduce using rule 47 (statement -> expression .) + LEFT_SQUARE reduce using rule 47 (statement -> expression .) + ID reduce using rule 47 (statement -> expression .) + NOT reduce using rule 47 (statement -> expression .) + LEFT_PAREN reduce using rule 47 (statement -> expression .) + DATE reduce using rule 47 (statement -> expression .) + BOOLEAN reduce using rule 47 (statement -> expression .) + CHAR reduce using rule 47 (statement -> expression .) + STRING reduce using rule 47 (statement -> expression .) + REAL reduce using rule 47 (statement -> expression .) + INTEGER reduce using rule 47 (statement -> expression .) + NEW reduce using rule 47 (statement -> expression .) + $end reduce using rule 47 (statement -> expression .) + UNTIL reduce using rule 47 (statement -> expression .) + ENDWHILE reduce using rule 47 (statement -> expression .) + ENDTYPE reduce using rule 47 (statement -> expression .) + ENDCLASS reduce using rule 47 (statement -> expression .) + ELSE reduce using rule 47 (statement -> expression .) + ENDIF reduce using rule 47 (statement -> expression .) + ENDPROCEDURE reduce using rule 47 (statement -> expression .) + SEMICOLON reduce using rule 47 (statement -> expression .) + NEXT reduce using rule 47 (statement -> expression .) + ENDFUNCTION reduce using rule 47 (statement -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 47 (statement -> expression .) ] + ! PLUS [ reduce using rule 47 (statement -> expression .) ] + ! MOD [ reduce using rule 47 (statement -> expression .) ] + ! DIV [ reduce using rule 47 (statement -> expression .) ] + ! POINTER [ reduce using rule 47 (statement -> expression .) ] state 10 - (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 + (23) expression -> LEFT_SQUARE . array_items RIGHT_SQUARE + (24) expression -> LEFT_SQUARE . RIGHT_SQUARE + (25) array_items -> . array_items COMMA expression + (26) array_items -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + RIGHT_SQUARE shift and go to state 80 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -974,50 +998,50 @@ state 10 POINTER shift and go to state 31 NEW shift and go to state 21 - array_items shift and go to state 76 - expression shift and go to state 78 + array_items shift and go to state 79 + expression shift and go to state 81 state 11 - (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 + (27) statement -> INPUT . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1036,51 +1060,51 @@ state 11 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 79 + expression shift and go to state 82 state 12 - (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 + (28) statement -> OUTPUT . output_expression + (30) output_expression -> . output_expression COMMA expression + (31) output_expression -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1099,52 +1123,52 @@ state 12 POINTER shift and go to state 31 NEW shift and go to state 21 - output_expression shift and go to state 80 - expression shift and go to state 81 + output_expression shift and go to state 83 + expression shift and go to state 84 state 13 - (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 + (29) statement -> _OUTPUT . output_expression + (30) output_expression -> . output_expression COMMA expression + (31) output_expression -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1163,51 +1187,51 @@ state 13 POINTER shift and go to state 31 NEW shift and go to state 21 - output_expression shift and go to state 82 - expression shift and go to state 81 + output_expression shift and go to state 85 + expression shift and go to state 84 state 14 - (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 + (32) statement -> IF . expression THEN statements ELSE statements ENDIF + (33) statement -> IF . expression THEN statements ENDIF + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1226,138 +1250,141 @@ state 14 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 83 + expression shift and go to state 86 state 15 - (29) statement -> CASE . OF expression cases ENDCASE + (34) statement -> CASE . OF expression cases ENDCASE - OF shift and go to state 84 + OF shift and go to state 87 state 16 - (37) statement -> FOR . ID ASSIGN expression TO expression STEP expression statements NEXT ID - (38) statement -> FOR . ID ASSIGN expression TO expression statements NEXT ID + (42) statement -> FOR . ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> FOR . ID ASSIGN expression TO expression statements NEXT ID - ID shift and go to state 85 + ID shift and go to state 88 state 17 - (39) statement -> REPEAT . statements UNTIL expression + (44) statement -> REPEAT . statements UNTIL expression (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -1402,52 +1429,52 @@ state 17 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 86 + statements shift and go to state 89 expression shift and go to state 9 statement shift and go to state 2 state 18 - (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 + (45) statement -> WHILE . expression DO statements ENDWHILE + (46) statement -> WHILE . expression statements ENDWHILE + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1466,60 +1493,60 @@ state 18 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 87 + expression shift and go to state 90 state 19 - (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 + (88) statement -> PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - ID shift and go to state 88 - NEW shift and go to state 89 + ID shift and go to state 91 + NEW shift and go to state 92 state 20 - (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 + (68) expression -> LEFT_PAREN . expression RIGHT_PAREN + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1538,77 +1565,77 @@ state 20 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 90 + expression shift and go to state 93 state 21 - (141) expression -> NEW . ID - (142) expression -> NEW . ID LEFT_PAREN parameters RIGHT_PAREN + (146) expression -> NEW . ID + (147) expression -> NEW . ID LEFT_PAREN parameters RIGHT_PAREN - ID shift and go to state 91 + ID shift and go to state 94 state 22 - (95) statement -> CALL . ID LEFT_PAREN parameters RIGHT_PAREN - (96) statement -> CALL . ID LEFT_PAREN RIGHT_PAREN + (100) statement -> CALL . ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> CALL . ID LEFT_PAREN RIGHT_PAREN - ID shift and go to state 92 + ID shift and go to state 95 state 23 - (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 + (102) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 93 + ID shift and go to state 96 state 24 - (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 + (124) statement -> RETURN . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1627,52 +1654,52 @@ state 24 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 94 + expression shift and go to state 97 state 25 - (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 + (125) statement -> OPENFILE . expression FOR READ + (126) statement -> OPENFILE . expression FOR WRITE + (127) statement -> OPENFILE . expression FOR APPEND + (128) statement -> OPENFILE . expression FOR RANDOM + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1691,50 +1718,50 @@ state 25 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 95 + expression shift and go to state 98 state 26 - (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 + (129) statement -> READFILE . expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> READFILE . expression COMMA ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1753,49 +1780,49 @@ state 26 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 96 + expression shift and go to state 99 state 27 - (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 + (131) statement -> WRITEFILE . expression COMMA expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1814,49 +1841,49 @@ state 27 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 97 + expression shift and go to state 100 state 28 - (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 + (132) statement -> CLOSEFILE . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1875,49 +1902,49 @@ state 28 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 98 + expression shift and go to state 101 state 29 - (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 + (133) statement -> SEEK . expression COMMA expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -1936,59 +1963,59 @@ state 29 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 99 + expression shift and go to state 102 state 30 - (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 + (134) statement -> TYPE . ID statements ENDTYPE + (136) statement -> TYPE . ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> TYPE . ID EQUAL POINTER ID + (148) statement -> TYPE . ID EQUAL SET OF ID - ID shift and go to state 100 + ID shift and go to state 103 state 31 - (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 + (139) expression -> POINTER . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2007,108 +2034,108 @@ state 31 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 101 + expression shift and go to state 104 state 32 - (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 .) + (142) statement -> PASS . + + DELETE reduce using rule 142 (statement -> PASS .) + DECLARE reduce using rule 142 (statement -> PASS .) + PUBLIC reduce using rule 142 (statement -> PASS .) + PRIVATE reduce using rule 142 (statement -> PASS .) + CONSTANT reduce using rule 142 (statement -> PASS .) + INPUT reduce using rule 142 (statement -> PASS .) + OUTPUT reduce using rule 142 (statement -> PASS .) + _OUTPUT reduce using rule 142 (statement -> PASS .) + IF reduce using rule 142 (statement -> PASS .) + CASE reduce using rule 142 (statement -> PASS .) + FOR reduce using rule 142 (statement -> PASS .) + REPEAT reduce using rule 142 (statement -> PASS .) + WHILE reduce using rule 142 (statement -> PASS .) + PROCEDURE reduce using rule 142 (statement -> PASS .) + CALL reduce using rule 142 (statement -> PASS .) + FUNCTION reduce using rule 142 (statement -> PASS .) + RETURN reduce using rule 142 (statement -> PASS .) + OPENFILE reduce using rule 142 (statement -> PASS .) + READFILE reduce using rule 142 (statement -> PASS .) + WRITEFILE reduce using rule 142 (statement -> PASS .) + CLOSEFILE reduce using rule 142 (statement -> PASS .) + SEEK reduce using rule 142 (statement -> PASS .) + TYPE reduce using rule 142 (statement -> PASS .) + PASS reduce using rule 142 (statement -> PASS .) + IMPORT reduce using rule 142 (statement -> PASS .) + CLASS reduce using rule 142 (statement -> PASS .) + LEFT_SQUARE reduce using rule 142 (statement -> PASS .) + ID reduce using rule 142 (statement -> PASS .) + NOT reduce using rule 142 (statement -> PASS .) + MINUS reduce using rule 142 (statement -> PASS .) + PLUS reduce using rule 142 (statement -> PASS .) + LEFT_PAREN reduce using rule 142 (statement -> PASS .) + DATE reduce using rule 142 (statement -> PASS .) + BOOLEAN reduce using rule 142 (statement -> PASS .) + CHAR reduce using rule 142 (statement -> PASS .) + STRING reduce using rule 142 (statement -> PASS .) + REAL reduce using rule 142 (statement -> PASS .) + INTEGER reduce using rule 142 (statement -> PASS .) + MOD reduce using rule 142 (statement -> PASS .) + DIV reduce using rule 142 (statement -> PASS .) + POINTER reduce using rule 142 (statement -> PASS .) + NEW reduce using rule 142 (statement -> PASS .) + $end reduce using rule 142 (statement -> PASS .) + UNTIL reduce using rule 142 (statement -> PASS .) + ENDWHILE reduce using rule 142 (statement -> PASS .) + ENDTYPE reduce using rule 142 (statement -> PASS .) + ENDCLASS reduce using rule 142 (statement -> PASS .) + ELSE reduce using rule 142 (statement -> PASS .) + ENDIF reduce using rule 142 (statement -> PASS .) + ENDPROCEDURE reduce using rule 142 (statement -> PASS .) + SEMICOLON reduce using rule 142 (statement -> PASS .) + NEXT reduce using rule 142 (statement -> PASS .) + ENDFUNCTION reduce using rule 142 (statement -> PASS .) state 33 - (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 + (143) statement -> IMPORT . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2127,57 +2154,57 @@ state 33 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 102 + expression shift and go to state 105 state 34 - (139) statement -> CLASS . ID statements ENDCLASS - (140) statement -> CLASS . ID INHERITS ID statements ENDCLASS + (144) statement -> CLASS . ID statements ENDCLASS + (145) statement -> CLASS . ID INHERITS ID statements ENDCLASS - ID shift and go to state 103 + ID shift and go to state 106 state 35 - (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 + (52) expression -> NOT . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2196,63 +2223,63 @@ state 35 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 104 + expression shift and go to state 107 state 36 - (116) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN - LEFT_PAREN shift and go to state 105 + LEFT_PAREN shift and go to state 108 state 37 - (117) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN - LEFT_PAREN shift and go to state 106 + LEFT_PAREN shift and go to state 109 state 38 - (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 + (63) expression -> MINUS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2271,49 +2298,49 @@ state 38 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 107 + expression shift and go to state 110 state 39 - (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 + (64) expression -> PLUS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2332,492 +2359,492 @@ state 39 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 108 + expression shift and go to state 111 state 40 - (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 .) + (69) expression -> DATE . + + ASSIGN reduce using rule 69 (expression -> DATE .) + OR reduce using rule 69 (expression -> DATE .) + AND reduce using rule 69 (expression -> DATE .) + EQUAL reduce using rule 69 (expression -> DATE .) + NOT_EQUAL reduce using rule 69 (expression -> DATE .) + LESS reduce using rule 69 (expression -> DATE .) + GREATER reduce using rule 69 (expression -> DATE .) + LESS_EQUAL reduce using rule 69 (expression -> DATE .) + GREATER_EQUAL reduce using rule 69 (expression -> DATE .) + MOD reduce using rule 69 (expression -> DATE .) + DIV reduce using rule 69 (expression -> DATE .) + MUL reduce using rule 69 (expression -> DATE .) + N_DIV reduce using rule 69 (expression -> DATE .) + PLUS reduce using rule 69 (expression -> DATE .) + MINUS reduce using rule 69 (expression -> DATE .) + CONNECT reduce using rule 69 (expression -> DATE .) + DOT reduce using rule 69 (expression -> DATE .) + POINTER reduce using rule 69 (expression -> DATE .) + DELETE reduce using rule 69 (expression -> DATE .) + DECLARE reduce using rule 69 (expression -> DATE .) + PUBLIC reduce using rule 69 (expression -> DATE .) + PRIVATE reduce using rule 69 (expression -> DATE .) + CONSTANT reduce using rule 69 (expression -> DATE .) + INPUT reduce using rule 69 (expression -> DATE .) + OUTPUT reduce using rule 69 (expression -> DATE .) + _OUTPUT reduce using rule 69 (expression -> DATE .) + IF reduce using rule 69 (expression -> DATE .) + CASE reduce using rule 69 (expression -> DATE .) + FOR reduce using rule 69 (expression -> DATE .) + REPEAT reduce using rule 69 (expression -> DATE .) + WHILE reduce using rule 69 (expression -> DATE .) + PROCEDURE reduce using rule 69 (expression -> DATE .) + CALL reduce using rule 69 (expression -> DATE .) + FUNCTION reduce using rule 69 (expression -> DATE .) + RETURN reduce using rule 69 (expression -> DATE .) + OPENFILE reduce using rule 69 (expression -> DATE .) + READFILE reduce using rule 69 (expression -> DATE .) + WRITEFILE reduce using rule 69 (expression -> DATE .) + CLOSEFILE reduce using rule 69 (expression -> DATE .) + SEEK reduce using rule 69 (expression -> DATE .) + TYPE reduce using rule 69 (expression -> DATE .) + PASS reduce using rule 69 (expression -> DATE .) + IMPORT reduce using rule 69 (expression -> DATE .) + CLASS reduce using rule 69 (expression -> DATE .) + LEFT_SQUARE reduce using rule 69 (expression -> DATE .) + ID reduce using rule 69 (expression -> DATE .) + NOT reduce using rule 69 (expression -> DATE .) + LEFT_PAREN reduce using rule 69 (expression -> DATE .) + DATE reduce using rule 69 (expression -> DATE .) + BOOLEAN reduce using rule 69 (expression -> DATE .) + CHAR reduce using rule 69 (expression -> DATE .) + STRING reduce using rule 69 (expression -> DATE .) + REAL reduce using rule 69 (expression -> DATE .) + INTEGER reduce using rule 69 (expression -> DATE .) + NEW reduce using rule 69 (expression -> DATE .) + $end reduce using rule 69 (expression -> DATE .) + RIGHT_SQUARE reduce using rule 69 (expression -> DATE .) + COMMA reduce using rule 69 (expression -> DATE .) + UNTIL reduce using rule 69 (expression -> DATE .) + ENDWHILE reduce using rule 69 (expression -> DATE .) + ENDTYPE reduce using rule 69 (expression -> DATE .) + ENDCLASS reduce using rule 69 (expression -> DATE .) + ELSE reduce using rule 69 (expression -> DATE .) + ENDIF reduce using rule 69 (expression -> DATE .) + ENDPROCEDURE reduce using rule 69 (expression -> DATE .) + SEMICOLON reduce using rule 69 (expression -> DATE .) + NEXT reduce using rule 69 (expression -> DATE .) + ENDFUNCTION reduce using rule 69 (expression -> DATE .) + THEN reduce using rule 69 (expression -> DATE .) + DO reduce using rule 69 (expression -> DATE .) + RIGHT_PAREN reduce using rule 69 (expression -> DATE .) + OTHERWISE reduce using rule 69 (expression -> DATE .) + TO reduce using rule 69 (expression -> DATE .) + COLON reduce using rule 69 (expression -> DATE .) + STEP reduce using rule 69 (expression -> DATE .) state 41 - (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 .) + (70) expression -> BOOLEAN . + + ASSIGN reduce using rule 70 (expression -> BOOLEAN .) + OR reduce using rule 70 (expression -> BOOLEAN .) + AND reduce using rule 70 (expression -> BOOLEAN .) + EQUAL reduce using rule 70 (expression -> BOOLEAN .) + NOT_EQUAL reduce using rule 70 (expression -> BOOLEAN .) + LESS reduce using rule 70 (expression -> BOOLEAN .) + GREATER reduce using rule 70 (expression -> BOOLEAN .) + LESS_EQUAL reduce using rule 70 (expression -> BOOLEAN .) + GREATER_EQUAL reduce using rule 70 (expression -> BOOLEAN .) + MOD reduce using rule 70 (expression -> BOOLEAN .) + DIV reduce using rule 70 (expression -> BOOLEAN .) + MUL reduce using rule 70 (expression -> BOOLEAN .) + N_DIV reduce using rule 70 (expression -> BOOLEAN .) + PLUS reduce using rule 70 (expression -> BOOLEAN .) + MINUS reduce using rule 70 (expression -> BOOLEAN .) + CONNECT reduce using rule 70 (expression -> BOOLEAN .) + DOT reduce using rule 70 (expression -> BOOLEAN .) + POINTER reduce using rule 70 (expression -> BOOLEAN .) + DELETE reduce using rule 70 (expression -> BOOLEAN .) + DECLARE reduce using rule 70 (expression -> BOOLEAN .) + PUBLIC reduce using rule 70 (expression -> BOOLEAN .) + PRIVATE reduce using rule 70 (expression -> BOOLEAN .) + CONSTANT reduce using rule 70 (expression -> BOOLEAN .) + INPUT reduce using rule 70 (expression -> BOOLEAN .) + OUTPUT reduce using rule 70 (expression -> BOOLEAN .) + _OUTPUT reduce using rule 70 (expression -> BOOLEAN .) + IF reduce using rule 70 (expression -> BOOLEAN .) + CASE reduce using rule 70 (expression -> BOOLEAN .) + FOR reduce using rule 70 (expression -> BOOLEAN .) + REPEAT reduce using rule 70 (expression -> BOOLEAN .) + WHILE reduce using rule 70 (expression -> BOOLEAN .) + PROCEDURE reduce using rule 70 (expression -> BOOLEAN .) + CALL reduce using rule 70 (expression -> BOOLEAN .) + FUNCTION reduce using rule 70 (expression -> BOOLEAN .) + RETURN reduce using rule 70 (expression -> BOOLEAN .) + OPENFILE reduce using rule 70 (expression -> BOOLEAN .) + READFILE reduce using rule 70 (expression -> BOOLEAN .) + WRITEFILE reduce using rule 70 (expression -> BOOLEAN .) + CLOSEFILE reduce using rule 70 (expression -> BOOLEAN .) + SEEK reduce using rule 70 (expression -> BOOLEAN .) + TYPE reduce using rule 70 (expression -> BOOLEAN .) + PASS reduce using rule 70 (expression -> BOOLEAN .) + IMPORT reduce using rule 70 (expression -> BOOLEAN .) + CLASS reduce using rule 70 (expression -> BOOLEAN .) + LEFT_SQUARE reduce using rule 70 (expression -> BOOLEAN .) + ID reduce using rule 70 (expression -> BOOLEAN .) + NOT reduce using rule 70 (expression -> BOOLEAN .) + LEFT_PAREN reduce using rule 70 (expression -> BOOLEAN .) + DATE reduce using rule 70 (expression -> BOOLEAN .) + BOOLEAN reduce using rule 70 (expression -> BOOLEAN .) + CHAR reduce using rule 70 (expression -> BOOLEAN .) + STRING reduce using rule 70 (expression -> BOOLEAN .) + REAL reduce using rule 70 (expression -> BOOLEAN .) + INTEGER reduce using rule 70 (expression -> BOOLEAN .) + NEW reduce using rule 70 (expression -> BOOLEAN .) + $end reduce using rule 70 (expression -> BOOLEAN .) + RIGHT_SQUARE reduce using rule 70 (expression -> BOOLEAN .) + COMMA reduce using rule 70 (expression -> BOOLEAN .) + UNTIL reduce using rule 70 (expression -> BOOLEAN .) + ENDWHILE reduce using rule 70 (expression -> BOOLEAN .) + ENDTYPE reduce using rule 70 (expression -> BOOLEAN .) + ENDCLASS reduce using rule 70 (expression -> BOOLEAN .) + ELSE reduce using rule 70 (expression -> BOOLEAN .) + ENDIF reduce using rule 70 (expression -> BOOLEAN .) + ENDPROCEDURE reduce using rule 70 (expression -> BOOLEAN .) + SEMICOLON reduce using rule 70 (expression -> BOOLEAN .) + NEXT reduce using rule 70 (expression -> BOOLEAN .) + ENDFUNCTION reduce using rule 70 (expression -> BOOLEAN .) + THEN reduce using rule 70 (expression -> BOOLEAN .) + DO reduce using rule 70 (expression -> BOOLEAN .) + RIGHT_PAREN reduce using rule 70 (expression -> BOOLEAN .) + OTHERWISE reduce using rule 70 (expression -> BOOLEAN .) + TO reduce using rule 70 (expression -> BOOLEAN .) + COLON reduce using rule 70 (expression -> BOOLEAN .) + STEP reduce using rule 70 (expression -> BOOLEAN .) state 42 - (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 .) + (71) expression -> CHAR . + + ASSIGN reduce using rule 71 (expression -> CHAR .) + OR reduce using rule 71 (expression -> CHAR .) + AND reduce using rule 71 (expression -> CHAR .) + EQUAL reduce using rule 71 (expression -> CHAR .) + NOT_EQUAL reduce using rule 71 (expression -> CHAR .) + LESS reduce using rule 71 (expression -> CHAR .) + GREATER reduce using rule 71 (expression -> CHAR .) + LESS_EQUAL reduce using rule 71 (expression -> CHAR .) + GREATER_EQUAL reduce using rule 71 (expression -> CHAR .) + MOD reduce using rule 71 (expression -> CHAR .) + DIV reduce using rule 71 (expression -> CHAR .) + MUL reduce using rule 71 (expression -> CHAR .) + N_DIV reduce using rule 71 (expression -> CHAR .) + PLUS reduce using rule 71 (expression -> CHAR .) + MINUS reduce using rule 71 (expression -> CHAR .) + CONNECT reduce using rule 71 (expression -> CHAR .) + DOT reduce using rule 71 (expression -> CHAR .) + POINTER reduce using rule 71 (expression -> CHAR .) + DELETE reduce using rule 71 (expression -> CHAR .) + DECLARE reduce using rule 71 (expression -> CHAR .) + PUBLIC reduce using rule 71 (expression -> CHAR .) + PRIVATE reduce using rule 71 (expression -> CHAR .) + CONSTANT reduce using rule 71 (expression -> CHAR .) + INPUT reduce using rule 71 (expression -> CHAR .) + OUTPUT reduce using rule 71 (expression -> CHAR .) + _OUTPUT reduce using rule 71 (expression -> CHAR .) + IF reduce using rule 71 (expression -> CHAR .) + CASE reduce using rule 71 (expression -> CHAR .) + FOR reduce using rule 71 (expression -> CHAR .) + REPEAT reduce using rule 71 (expression -> CHAR .) + WHILE reduce using rule 71 (expression -> CHAR .) + PROCEDURE reduce using rule 71 (expression -> CHAR .) + CALL reduce using rule 71 (expression -> CHAR .) + FUNCTION reduce using rule 71 (expression -> CHAR .) + RETURN reduce using rule 71 (expression -> CHAR .) + OPENFILE reduce using rule 71 (expression -> CHAR .) + READFILE reduce using rule 71 (expression -> CHAR .) + WRITEFILE reduce using rule 71 (expression -> CHAR .) + CLOSEFILE reduce using rule 71 (expression -> CHAR .) + SEEK reduce using rule 71 (expression -> CHAR .) + TYPE reduce using rule 71 (expression -> CHAR .) + PASS reduce using rule 71 (expression -> CHAR .) + IMPORT reduce using rule 71 (expression -> CHAR .) + CLASS reduce using rule 71 (expression -> CHAR .) + LEFT_SQUARE reduce using rule 71 (expression -> CHAR .) + ID reduce using rule 71 (expression -> CHAR .) + NOT reduce using rule 71 (expression -> CHAR .) + LEFT_PAREN reduce using rule 71 (expression -> CHAR .) + DATE reduce using rule 71 (expression -> CHAR .) + BOOLEAN reduce using rule 71 (expression -> CHAR .) + CHAR reduce using rule 71 (expression -> CHAR .) + STRING reduce using rule 71 (expression -> CHAR .) + REAL reduce using rule 71 (expression -> CHAR .) + INTEGER reduce using rule 71 (expression -> CHAR .) + NEW reduce using rule 71 (expression -> CHAR .) + $end reduce using rule 71 (expression -> CHAR .) + RIGHT_SQUARE reduce using rule 71 (expression -> CHAR .) + COMMA reduce using rule 71 (expression -> CHAR .) + UNTIL reduce using rule 71 (expression -> CHAR .) + ENDWHILE reduce using rule 71 (expression -> CHAR .) + ENDTYPE reduce using rule 71 (expression -> CHAR .) + ENDCLASS reduce using rule 71 (expression -> CHAR .) + ELSE reduce using rule 71 (expression -> CHAR .) + ENDIF reduce using rule 71 (expression -> CHAR .) + ENDPROCEDURE reduce using rule 71 (expression -> CHAR .) + SEMICOLON reduce using rule 71 (expression -> CHAR .) + NEXT reduce using rule 71 (expression -> CHAR .) + ENDFUNCTION reduce using rule 71 (expression -> CHAR .) + THEN reduce using rule 71 (expression -> CHAR .) + DO reduce using rule 71 (expression -> CHAR .) + RIGHT_PAREN reduce using rule 71 (expression -> CHAR .) + OTHERWISE reduce using rule 71 (expression -> CHAR .) + TO reduce using rule 71 (expression -> CHAR .) + COLON reduce using rule 71 (expression -> CHAR .) + STEP reduce using rule 71 (expression -> CHAR .) state 43 - (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 .) + (72) expression -> STRING . + + ASSIGN reduce using rule 72 (expression -> STRING .) + OR reduce using rule 72 (expression -> STRING .) + AND reduce using rule 72 (expression -> STRING .) + EQUAL reduce using rule 72 (expression -> STRING .) + NOT_EQUAL reduce using rule 72 (expression -> STRING .) + LESS reduce using rule 72 (expression -> STRING .) + GREATER reduce using rule 72 (expression -> STRING .) + LESS_EQUAL reduce using rule 72 (expression -> STRING .) + GREATER_EQUAL reduce using rule 72 (expression -> STRING .) + MOD reduce using rule 72 (expression -> STRING .) + DIV reduce using rule 72 (expression -> STRING .) + MUL reduce using rule 72 (expression -> STRING .) + N_DIV reduce using rule 72 (expression -> STRING .) + PLUS reduce using rule 72 (expression -> STRING .) + MINUS reduce using rule 72 (expression -> STRING .) + CONNECT reduce using rule 72 (expression -> STRING .) + DOT reduce using rule 72 (expression -> STRING .) + POINTER reduce using rule 72 (expression -> STRING .) + DELETE reduce using rule 72 (expression -> STRING .) + DECLARE reduce using rule 72 (expression -> STRING .) + PUBLIC reduce using rule 72 (expression -> STRING .) + PRIVATE reduce using rule 72 (expression -> STRING .) + CONSTANT reduce using rule 72 (expression -> STRING .) + INPUT reduce using rule 72 (expression -> STRING .) + OUTPUT reduce using rule 72 (expression -> STRING .) + _OUTPUT reduce using rule 72 (expression -> STRING .) + IF reduce using rule 72 (expression -> STRING .) + CASE reduce using rule 72 (expression -> STRING .) + FOR reduce using rule 72 (expression -> STRING .) + REPEAT reduce using rule 72 (expression -> STRING .) + WHILE reduce using rule 72 (expression -> STRING .) + PROCEDURE reduce using rule 72 (expression -> STRING .) + CALL reduce using rule 72 (expression -> STRING .) + FUNCTION reduce using rule 72 (expression -> STRING .) + RETURN reduce using rule 72 (expression -> STRING .) + OPENFILE reduce using rule 72 (expression -> STRING .) + READFILE reduce using rule 72 (expression -> STRING .) + WRITEFILE reduce using rule 72 (expression -> STRING .) + CLOSEFILE reduce using rule 72 (expression -> STRING .) + SEEK reduce using rule 72 (expression -> STRING .) + TYPE reduce using rule 72 (expression -> STRING .) + PASS reduce using rule 72 (expression -> STRING .) + IMPORT reduce using rule 72 (expression -> STRING .) + CLASS reduce using rule 72 (expression -> STRING .) + LEFT_SQUARE reduce using rule 72 (expression -> STRING .) + ID reduce using rule 72 (expression -> STRING .) + NOT reduce using rule 72 (expression -> STRING .) + LEFT_PAREN reduce using rule 72 (expression -> STRING .) + DATE reduce using rule 72 (expression -> STRING .) + BOOLEAN reduce using rule 72 (expression -> STRING .) + CHAR reduce using rule 72 (expression -> STRING .) + STRING reduce using rule 72 (expression -> STRING .) + REAL reduce using rule 72 (expression -> STRING .) + INTEGER reduce using rule 72 (expression -> STRING .) + NEW reduce using rule 72 (expression -> STRING .) + $end reduce using rule 72 (expression -> STRING .) + RIGHT_SQUARE reduce using rule 72 (expression -> STRING .) + COMMA reduce using rule 72 (expression -> STRING .) + UNTIL reduce using rule 72 (expression -> STRING .) + ENDWHILE reduce using rule 72 (expression -> STRING .) + ENDTYPE reduce using rule 72 (expression -> STRING .) + ENDCLASS reduce using rule 72 (expression -> STRING .) + ELSE reduce using rule 72 (expression -> STRING .) + ENDIF reduce using rule 72 (expression -> STRING .) + ENDPROCEDURE reduce using rule 72 (expression -> STRING .) + SEMICOLON reduce using rule 72 (expression -> STRING .) + NEXT reduce using rule 72 (expression -> STRING .) + ENDFUNCTION reduce using rule 72 (expression -> STRING .) + THEN reduce using rule 72 (expression -> STRING .) + DO reduce using rule 72 (expression -> STRING .) + RIGHT_PAREN reduce using rule 72 (expression -> STRING .) + OTHERWISE reduce using rule 72 (expression -> STRING .) + TO reduce using rule 72 (expression -> STRING .) + COLON reduce using rule 72 (expression -> STRING .) + STEP reduce using rule 72 (expression -> STRING .) state 44 - (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 .) + (73) expression -> REAL . + + ASSIGN reduce using rule 73 (expression -> REAL .) + OR reduce using rule 73 (expression -> REAL .) + AND reduce using rule 73 (expression -> REAL .) + EQUAL reduce using rule 73 (expression -> REAL .) + NOT_EQUAL reduce using rule 73 (expression -> REAL .) + LESS reduce using rule 73 (expression -> REAL .) + GREATER reduce using rule 73 (expression -> REAL .) + LESS_EQUAL reduce using rule 73 (expression -> REAL .) + GREATER_EQUAL reduce using rule 73 (expression -> REAL .) + MOD reduce using rule 73 (expression -> REAL .) + DIV reduce using rule 73 (expression -> REAL .) + MUL reduce using rule 73 (expression -> REAL .) + N_DIV reduce using rule 73 (expression -> REAL .) + PLUS reduce using rule 73 (expression -> REAL .) + MINUS reduce using rule 73 (expression -> REAL .) + CONNECT reduce using rule 73 (expression -> REAL .) + DOT reduce using rule 73 (expression -> REAL .) + POINTER reduce using rule 73 (expression -> REAL .) + DELETE reduce using rule 73 (expression -> REAL .) + DECLARE reduce using rule 73 (expression -> REAL .) + PUBLIC reduce using rule 73 (expression -> REAL .) + PRIVATE reduce using rule 73 (expression -> REAL .) + CONSTANT reduce using rule 73 (expression -> REAL .) + INPUT reduce using rule 73 (expression -> REAL .) + OUTPUT reduce using rule 73 (expression -> REAL .) + _OUTPUT reduce using rule 73 (expression -> REAL .) + IF reduce using rule 73 (expression -> REAL .) + CASE reduce using rule 73 (expression -> REAL .) + FOR reduce using rule 73 (expression -> REAL .) + REPEAT reduce using rule 73 (expression -> REAL .) + WHILE reduce using rule 73 (expression -> REAL .) + PROCEDURE reduce using rule 73 (expression -> REAL .) + CALL reduce using rule 73 (expression -> REAL .) + FUNCTION reduce using rule 73 (expression -> REAL .) + RETURN reduce using rule 73 (expression -> REAL .) + OPENFILE reduce using rule 73 (expression -> REAL .) + READFILE reduce using rule 73 (expression -> REAL .) + WRITEFILE reduce using rule 73 (expression -> REAL .) + CLOSEFILE reduce using rule 73 (expression -> REAL .) + SEEK reduce using rule 73 (expression -> REAL .) + TYPE reduce using rule 73 (expression -> REAL .) + PASS reduce using rule 73 (expression -> REAL .) + IMPORT reduce using rule 73 (expression -> REAL .) + CLASS reduce using rule 73 (expression -> REAL .) + LEFT_SQUARE reduce using rule 73 (expression -> REAL .) + ID reduce using rule 73 (expression -> REAL .) + NOT reduce using rule 73 (expression -> REAL .) + LEFT_PAREN reduce using rule 73 (expression -> REAL .) + DATE reduce using rule 73 (expression -> REAL .) + BOOLEAN reduce using rule 73 (expression -> REAL .) + CHAR reduce using rule 73 (expression -> REAL .) + STRING reduce using rule 73 (expression -> REAL .) + REAL reduce using rule 73 (expression -> REAL .) + INTEGER reduce using rule 73 (expression -> REAL .) + NEW reduce using rule 73 (expression -> REAL .) + $end reduce using rule 73 (expression -> REAL .) + RIGHT_SQUARE reduce using rule 73 (expression -> REAL .) + COMMA reduce using rule 73 (expression -> REAL .) + UNTIL reduce using rule 73 (expression -> REAL .) + ENDWHILE reduce using rule 73 (expression -> REAL .) + ENDTYPE reduce using rule 73 (expression -> REAL .) + ENDCLASS reduce using rule 73 (expression -> REAL .) + ELSE reduce using rule 73 (expression -> REAL .) + ENDIF reduce using rule 73 (expression -> REAL .) + ENDPROCEDURE reduce using rule 73 (expression -> REAL .) + SEMICOLON reduce using rule 73 (expression -> REAL .) + NEXT reduce using rule 73 (expression -> REAL .) + ENDFUNCTION reduce using rule 73 (expression -> REAL .) + THEN reduce using rule 73 (expression -> REAL .) + DO reduce using rule 73 (expression -> REAL .) + RIGHT_PAREN reduce using rule 73 (expression -> REAL .) + OTHERWISE reduce using rule 73 (expression -> REAL .) + TO reduce using rule 73 (expression -> REAL .) + COLON reduce using rule 73 (expression -> REAL .) + STEP reduce using rule 73 (expression -> REAL .) state 45 - (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 .) + (74) expression -> INTEGER . + + ASSIGN reduce using rule 74 (expression -> INTEGER .) + OR reduce using rule 74 (expression -> INTEGER .) + AND reduce using rule 74 (expression -> INTEGER .) + EQUAL reduce using rule 74 (expression -> INTEGER .) + NOT_EQUAL reduce using rule 74 (expression -> INTEGER .) + LESS reduce using rule 74 (expression -> INTEGER .) + GREATER reduce using rule 74 (expression -> INTEGER .) + LESS_EQUAL reduce using rule 74 (expression -> INTEGER .) + GREATER_EQUAL reduce using rule 74 (expression -> INTEGER .) + MOD reduce using rule 74 (expression -> INTEGER .) + DIV reduce using rule 74 (expression -> INTEGER .) + MUL reduce using rule 74 (expression -> INTEGER .) + N_DIV reduce using rule 74 (expression -> INTEGER .) + PLUS reduce using rule 74 (expression -> INTEGER .) + MINUS reduce using rule 74 (expression -> INTEGER .) + CONNECT reduce using rule 74 (expression -> INTEGER .) + DOT reduce using rule 74 (expression -> INTEGER .) + POINTER reduce using rule 74 (expression -> INTEGER .) + DELETE reduce using rule 74 (expression -> INTEGER .) + DECLARE reduce using rule 74 (expression -> INTEGER .) + PUBLIC reduce using rule 74 (expression -> INTEGER .) + PRIVATE reduce using rule 74 (expression -> INTEGER .) + CONSTANT reduce using rule 74 (expression -> INTEGER .) + INPUT reduce using rule 74 (expression -> INTEGER .) + OUTPUT reduce using rule 74 (expression -> INTEGER .) + _OUTPUT reduce using rule 74 (expression -> INTEGER .) + IF reduce using rule 74 (expression -> INTEGER .) + CASE reduce using rule 74 (expression -> INTEGER .) + FOR reduce using rule 74 (expression -> INTEGER .) + REPEAT reduce using rule 74 (expression -> INTEGER .) + WHILE reduce using rule 74 (expression -> INTEGER .) + PROCEDURE reduce using rule 74 (expression -> INTEGER .) + CALL reduce using rule 74 (expression -> INTEGER .) + FUNCTION reduce using rule 74 (expression -> INTEGER .) + RETURN reduce using rule 74 (expression -> INTEGER .) + OPENFILE reduce using rule 74 (expression -> INTEGER .) + READFILE reduce using rule 74 (expression -> INTEGER .) + WRITEFILE reduce using rule 74 (expression -> INTEGER .) + CLOSEFILE reduce using rule 74 (expression -> INTEGER .) + SEEK reduce using rule 74 (expression -> INTEGER .) + TYPE reduce using rule 74 (expression -> INTEGER .) + PASS reduce using rule 74 (expression -> INTEGER .) + IMPORT reduce using rule 74 (expression -> INTEGER .) + CLASS reduce using rule 74 (expression -> INTEGER .) + LEFT_SQUARE reduce using rule 74 (expression -> INTEGER .) + ID reduce using rule 74 (expression -> INTEGER .) + NOT reduce using rule 74 (expression -> INTEGER .) + LEFT_PAREN reduce using rule 74 (expression -> INTEGER .) + DATE reduce using rule 74 (expression -> INTEGER .) + BOOLEAN reduce using rule 74 (expression -> INTEGER .) + CHAR reduce using rule 74 (expression -> INTEGER .) + STRING reduce using rule 74 (expression -> INTEGER .) + REAL reduce using rule 74 (expression -> INTEGER .) + INTEGER reduce using rule 74 (expression -> INTEGER .) + NEW reduce using rule 74 (expression -> INTEGER .) + $end reduce using rule 74 (expression -> INTEGER .) + RIGHT_SQUARE reduce using rule 74 (expression -> INTEGER .) + COMMA reduce using rule 74 (expression -> INTEGER .) + UNTIL reduce using rule 74 (expression -> INTEGER .) + ENDWHILE reduce using rule 74 (expression -> INTEGER .) + ENDTYPE reduce using rule 74 (expression -> INTEGER .) + ENDCLASS reduce using rule 74 (expression -> INTEGER .) + ELSE reduce using rule 74 (expression -> INTEGER .) + ENDIF reduce using rule 74 (expression -> INTEGER .) + ENDPROCEDURE reduce using rule 74 (expression -> INTEGER .) + SEMICOLON reduce using rule 74 (expression -> INTEGER .) + NEXT reduce using rule 74 (expression -> INTEGER .) + ENDFUNCTION reduce using rule 74 (expression -> INTEGER .) + THEN reduce using rule 74 (expression -> INTEGER .) + DO reduce using rule 74 (expression -> INTEGER .) + RIGHT_PAREN reduce using rule 74 (expression -> INTEGER .) + OTHERWISE reduce using rule 74 (expression -> INTEGER .) + TO reduce using rule 74 (expression -> INTEGER .) + COLON reduce using rule 74 (expression -> INTEGER .) + STEP reduce using rule 74 (expression -> INTEGER .) state 46 @@ -2940,47 +2967,47 @@ state 47 state 48 - (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 + (49) expression -> ID LEFT_SQUARE . indexes RIGHT_SQUARE + (21) indexes -> . indexes COMMA expression + (22) indexes -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -2999,55 +3026,55 @@ state 48 POINTER shift and go to state 31 NEW shift and go to state 21 - indexes shift and go to state 109 - expression shift and go to state 110 + indexes shift and go to state 112 + expression shift and go to state 113 state 49 - (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 + (120) expression -> ID LEFT_PAREN . parameters RIGHT_PAREN + (123) expression -> ID LEFT_PAREN . RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + RIGHT_PAREN shift and go to state 115 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -3065,129 +3092,171 @@ state 49 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 111 - expression shift and go to state 113 + parameters shift and go to state 114 + expression shift and go to state 116 state 50 (4) statement -> DECLARE ID . COLON ID - (9) statement -> DECLARE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (14) statement -> DECLARE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) ids -> ID . + + ! shift/reduce conflict for COLON resolved as shift + COLON shift and go to state 117 + COMMA reduce using rule 9 (ids -> ID .) - COLON shift and go to state 114 + ! COLON [ reduce using rule 9 (ids -> ID .) ] state 51 - (5) statement -> PUBLIC ID . COLON ID - (10) statement -> PUBLIC ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (6) statement -> DECLARE ids . COLON ID + (8) ids -> ids . COMMA ID - COLON shift and go to state 115 + COLON shift and go to state 118 + COMMA shift and go to state 119 state 52 - (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 + (5) statement -> PUBLIC ID . COLON ID + (15) statement -> PUBLIC ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) ids -> ID . + + ! shift/reduce conflict for COLON resolved as shift + COLON shift and go to state 120 + COMMA reduce using rule 9 (ids -> ID .) - ID shift and go to state 116 - NEW shift and go to state 117 + ! COLON [ reduce using rule 9 (ids -> ID .) ] state 53 - (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 + (7) statement -> PUBLIC ids . COLON ID + (8) ids -> ids . COMMA ID - ID shift and go to state 118 + COLON shift and go to state 121 + COMMA shift and go to state 119 state 54 - (6) statement -> PRIVATE ID . COLON ID - (11) statement -> PRIVATE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (92) statement -> PUBLIC PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> PUBLIC PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PUBLIC PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> PUBLIC PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - COLON shift and go to state 119 + ID shift and go to state 122 + NEW shift and go to state 123 state 55 - (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 + (106) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> PUBLIC FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 120 - NEW shift and go to state 121 + ID shift and go to state 124 state 56 - (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 + (10) statement -> PRIVATE ID . COLON ID + (16) statement -> PRIVATE ID . COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (9) ids -> ID . - ID shift and go to state 122 + ! shift/reduce conflict for COLON resolved as shift + COLON shift and go to state 125 + COMMA reduce using rule 9 (ids -> ID .) + + ! COLON [ reduce using rule 9 (ids -> ID .) ] state 57 - (7) statement -> CONSTANT ID . EQUAL expression - (8) statement -> CONSTANT ID . ASSIGN expression + (11) statement -> PRIVATE ids . COLON ID + (8) ids -> ids . COMMA ID - EQUAL shift and go to state 123 - ASSIGN shift and go to state 124 + COLON shift and go to state 126 + COMMA shift and go to state 119 state 58 - (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 + (96) statement -> PRIVATE PROCEDURE . ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> PRIVATE PROCEDURE . NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> PRIVATE PROCEDURE . ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> PRIVATE PROCEDURE . NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + + ID shift and go to state 127 + NEW shift and go to state 128 + + +state 59 + + (110) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION . ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> PRIVATE FUNCTION . ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + + ID shift and go to state 129 + + +state 60 + + (12) statement -> CONSTANT ID . EQUAL expression + (13) statement -> CONSTANT ID . ASSIGN expression + + EQUAL shift and go to state 130 + ASSIGN shift and go to state 131 + + +state 61 + + (20) statement -> expression ASSIGN . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3206,49 +3275,49 @@ state 58 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 132 -state 59 +state 62 - (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 + (50) expression -> expression OR . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3267,49 +3336,49 @@ state 59 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 133 -state 60 +state 63 - (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 + (51) expression -> expression AND . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3328,49 +3397,49 @@ state 60 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 134 -state 61 +state 64 - (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 + (53) expression -> expression EQUAL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3389,49 +3458,49 @@ state 61 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 135 -state 62 +state 65 - (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 + (54) expression -> expression NOT_EQUAL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3450,49 +3519,49 @@ state 62 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 136 -state 63 +state 66 - (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 + (55) expression -> expression LESS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3511,49 +3580,49 @@ state 63 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 137 -state 64 +state 67 - (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 + (56) expression -> expression GREATER . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3572,49 +3641,49 @@ state 64 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 138 -state 65 +state 68 - (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 + (57) expression -> expression LESS_EQUAL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3633,49 +3702,49 @@ state 65 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 139 -state 66 +state 69 - (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 + (58) expression -> expression GREATER_EQUAL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3694,49 +3763,49 @@ state 66 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 140 -state 67 +state 70 - (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 + (59) expression -> expression MOD . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3755,49 +3824,49 @@ state 67 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 141 -state 68 +state 71 - (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 + (60) expression -> expression DIV . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3816,49 +3885,49 @@ state 68 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 142 -state 69 +state 72 - (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 + (61) expression -> expression MUL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3877,49 +3946,49 @@ state 69 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 143 -state 70 +state 73 - (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 + (62) expression -> expression N_DIV . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3938,49 +4007,49 @@ state 70 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 144 -state 71 +state 74 - (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 + (65) expression -> expression PLUS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -3999,49 +4068,49 @@ state 71 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 145 -state 72 +state 75 - (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 + (66) expression -> expression MINUS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4060,49 +4129,49 @@ state 72 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 146 -state 73 +state 76 - (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 + (67) expression -> expression CONNECT . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4121,49 +4190,49 @@ state 73 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 147 -state 74 +state 77 - (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 + (135) expression -> expression DOT . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4182,625 +4251,625 @@ state 74 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 141 + expression shift and go to state 148 -state 75 +state 78 - (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 .) + (140) expression -> expression POINTER . + + ASSIGN reduce using rule 140 (expression -> expression POINTER .) + OR reduce using rule 140 (expression -> expression POINTER .) + AND reduce using rule 140 (expression -> expression POINTER .) + EQUAL reduce using rule 140 (expression -> expression POINTER .) + NOT_EQUAL reduce using rule 140 (expression -> expression POINTER .) + LESS reduce using rule 140 (expression -> expression POINTER .) + GREATER reduce using rule 140 (expression -> expression POINTER .) + LESS_EQUAL reduce using rule 140 (expression -> expression POINTER .) + GREATER_EQUAL reduce using rule 140 (expression -> expression POINTER .) + MOD reduce using rule 140 (expression -> expression POINTER .) + DIV reduce using rule 140 (expression -> expression POINTER .) + MUL reduce using rule 140 (expression -> expression POINTER .) + N_DIV reduce using rule 140 (expression -> expression POINTER .) + PLUS reduce using rule 140 (expression -> expression POINTER .) + MINUS reduce using rule 140 (expression -> expression POINTER .) + CONNECT reduce using rule 140 (expression -> expression POINTER .) + DOT reduce using rule 140 (expression -> expression POINTER .) + POINTER reduce using rule 140 (expression -> expression POINTER .) + DELETE reduce using rule 140 (expression -> expression POINTER .) + DECLARE reduce using rule 140 (expression -> expression POINTER .) + PUBLIC reduce using rule 140 (expression -> expression POINTER .) + PRIVATE reduce using rule 140 (expression -> expression POINTER .) + CONSTANT reduce using rule 140 (expression -> expression POINTER .) + INPUT reduce using rule 140 (expression -> expression POINTER .) + OUTPUT reduce using rule 140 (expression -> expression POINTER .) + _OUTPUT reduce using rule 140 (expression -> expression POINTER .) + IF reduce using rule 140 (expression -> expression POINTER .) + CASE reduce using rule 140 (expression -> expression POINTER .) + FOR reduce using rule 140 (expression -> expression POINTER .) + REPEAT reduce using rule 140 (expression -> expression POINTER .) + WHILE reduce using rule 140 (expression -> expression POINTER .) + PROCEDURE reduce using rule 140 (expression -> expression POINTER .) + CALL reduce using rule 140 (expression -> expression POINTER .) + FUNCTION reduce using rule 140 (expression -> expression POINTER .) + RETURN reduce using rule 140 (expression -> expression POINTER .) + OPENFILE reduce using rule 140 (expression -> expression POINTER .) + READFILE reduce using rule 140 (expression -> expression POINTER .) + WRITEFILE reduce using rule 140 (expression -> expression POINTER .) + CLOSEFILE reduce using rule 140 (expression -> expression POINTER .) + SEEK reduce using rule 140 (expression -> expression POINTER .) + TYPE reduce using rule 140 (expression -> expression POINTER .) + PASS reduce using rule 140 (expression -> expression POINTER .) + IMPORT reduce using rule 140 (expression -> expression POINTER .) + CLASS reduce using rule 140 (expression -> expression POINTER .) + LEFT_SQUARE reduce using rule 140 (expression -> expression POINTER .) + ID reduce using rule 140 (expression -> expression POINTER .) + NOT reduce using rule 140 (expression -> expression POINTER .) + LEFT_PAREN reduce using rule 140 (expression -> expression POINTER .) + DATE reduce using rule 140 (expression -> expression POINTER .) + BOOLEAN reduce using rule 140 (expression -> expression POINTER .) + CHAR reduce using rule 140 (expression -> expression POINTER .) + STRING reduce using rule 140 (expression -> expression POINTER .) + REAL reduce using rule 140 (expression -> expression POINTER .) + INTEGER reduce using rule 140 (expression -> expression POINTER .) + NEW reduce using rule 140 (expression -> expression POINTER .) + $end reduce using rule 140 (expression -> expression POINTER .) + RIGHT_SQUARE reduce using rule 140 (expression -> expression POINTER .) + COMMA reduce using rule 140 (expression -> expression POINTER .) + UNTIL reduce using rule 140 (expression -> expression POINTER .) + ENDWHILE reduce using rule 140 (expression -> expression POINTER .) + ENDTYPE reduce using rule 140 (expression -> expression POINTER .) + ENDCLASS reduce using rule 140 (expression -> expression POINTER .) + ELSE reduce using rule 140 (expression -> expression POINTER .) + ENDIF reduce using rule 140 (expression -> expression POINTER .) + ENDPROCEDURE reduce using rule 140 (expression -> expression POINTER .) + SEMICOLON reduce using rule 140 (expression -> expression POINTER .) + NEXT reduce using rule 140 (expression -> expression POINTER .) + ENDFUNCTION reduce using rule 140 (expression -> expression POINTER .) + THEN reduce using rule 140 (expression -> expression POINTER .) + RIGHT_PAREN reduce using rule 140 (expression -> expression POINTER .) + DO reduce using rule 140 (expression -> expression POINTER .) + OTHERWISE reduce using rule 140 (expression -> expression POINTER .) + TO reduce using rule 140 (expression -> expression POINTER .) + COLON reduce using rule 140 (expression -> expression POINTER .) + STEP reduce using rule 140 (expression -> expression POINTER .) -state 76 +state 79 - (18) expression -> LEFT_SQUARE array_items . RIGHT_SQUARE - (20) array_items -> array_items . COMMA expression + (23) expression -> LEFT_SQUARE array_items . RIGHT_SQUARE + (25) array_items -> array_items . COMMA expression - RIGHT_SQUARE shift and go to state 142 - COMMA shift and go to state 143 + RIGHT_SQUARE shift and go to state 149 + COMMA shift and go to state 150 -state 77 +state 80 - (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 .) + (24) expression -> LEFT_SQUARE RIGHT_SQUARE . + + ASSIGN reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OR reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + AND reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + EQUAL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NOT_EQUAL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LESS reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + GREATER reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LESS_EQUAL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + GREATER_EQUAL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + MOD reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DIV reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + MUL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + N_DIV reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PLUS reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + MINUS reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CONNECT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DOT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + POINTER reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DELETE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DECLARE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PUBLIC reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PRIVATE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CONSTANT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + INPUT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OUTPUT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + _OUTPUT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + IF reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CASE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + FOR reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + REPEAT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + WHILE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PROCEDURE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CALL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + FUNCTION reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + RETURN reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OPENFILE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + READFILE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + WRITEFILE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CLOSEFILE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + SEEK reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + TYPE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + PASS reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + IMPORT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CLASS reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ID reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NOT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DATE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + BOOLEAN reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + CHAR reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + STRING reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + REAL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + INTEGER reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NEW reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + $end reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + RIGHT_SQUARE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + COMMA reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + UNTIL reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDWHILE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDTYPE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDCLASS reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ELSE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDIF reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + SEMICOLON reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + NEXT reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + THEN reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + DO reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + RIGHT_PAREN reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + OTHERWISE reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + TO reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + COLON reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) + STEP reduce using rule 24 (expression -> LEFT_SQUARE RIGHT_SQUARE .) -state 78 +state 81 - (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 - 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 + (26) array_items -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 26 (array_items -> expression .) + COMMA reduce using rule 26 (array_items -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 79 +state 82 - (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 + (27) statement -> INPUT expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + DELETE reduce using rule 27 (statement -> INPUT expression .) + DECLARE reduce using rule 27 (statement -> INPUT expression .) + PUBLIC reduce using rule 27 (statement -> INPUT expression .) + PRIVATE reduce using rule 27 (statement -> INPUT expression .) + CONSTANT reduce using rule 27 (statement -> INPUT expression .) + INPUT reduce using rule 27 (statement -> INPUT expression .) + OUTPUT reduce using rule 27 (statement -> INPUT expression .) + _OUTPUT reduce using rule 27 (statement -> INPUT expression .) + IF reduce using rule 27 (statement -> INPUT expression .) + CASE reduce using rule 27 (statement -> INPUT expression .) + FOR reduce using rule 27 (statement -> INPUT expression .) + REPEAT reduce using rule 27 (statement -> INPUT expression .) + WHILE reduce using rule 27 (statement -> INPUT expression .) + PROCEDURE reduce using rule 27 (statement -> INPUT expression .) + CALL reduce using rule 27 (statement -> INPUT expression .) + FUNCTION reduce using rule 27 (statement -> INPUT expression .) + RETURN reduce using rule 27 (statement -> INPUT expression .) + OPENFILE reduce using rule 27 (statement -> INPUT expression .) + READFILE reduce using rule 27 (statement -> INPUT expression .) + WRITEFILE reduce using rule 27 (statement -> INPUT expression .) + CLOSEFILE reduce using rule 27 (statement -> INPUT expression .) + SEEK reduce using rule 27 (statement -> INPUT expression .) + TYPE reduce using rule 27 (statement -> INPUT expression .) + PASS reduce using rule 27 (statement -> INPUT expression .) + IMPORT reduce using rule 27 (statement -> INPUT expression .) + CLASS reduce using rule 27 (statement -> INPUT expression .) + LEFT_SQUARE reduce using rule 27 (statement -> INPUT expression .) + ID reduce using rule 27 (statement -> INPUT expression .) + NOT reduce using rule 27 (statement -> INPUT expression .) + LEFT_PAREN reduce using rule 27 (statement -> INPUT expression .) + DATE reduce using rule 27 (statement -> INPUT expression .) + BOOLEAN reduce using rule 27 (statement -> INPUT expression .) + CHAR reduce using rule 27 (statement -> INPUT expression .) + STRING reduce using rule 27 (statement -> INPUT expression .) + REAL reduce using rule 27 (statement -> INPUT expression .) + INTEGER reduce using rule 27 (statement -> INPUT expression .) + NEW reduce using rule 27 (statement -> INPUT expression .) + $end reduce using rule 27 (statement -> INPUT expression .) + UNTIL reduce using rule 27 (statement -> INPUT expression .) + ENDWHILE reduce using rule 27 (statement -> INPUT expression .) + ENDTYPE reduce using rule 27 (statement -> INPUT expression .) + ENDCLASS reduce using rule 27 (statement -> INPUT expression .) + ELSE reduce using rule 27 (statement -> INPUT expression .) + ENDIF reduce using rule 27 (statement -> INPUT expression .) + ENDPROCEDURE reduce using rule 27 (statement -> INPUT expression .) + SEMICOLON reduce using rule 27 (statement -> INPUT expression .) + NEXT reduce using rule 27 (statement -> INPUT expression .) + ENDFUNCTION reduce using rule 27 (statement -> INPUT expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 27 (statement -> INPUT expression .) ] + ! PLUS [ reduce using rule 27 (statement -> INPUT expression .) ] + ! MOD [ reduce using rule 27 (statement -> INPUT expression .) ] + ! DIV [ reduce using rule 27 (statement -> INPUT expression .) ] + ! POINTER [ reduce using rule 27 (statement -> INPUT expression .) ] -state 80 +state 83 - (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 + (28) statement -> OUTPUT output_expression . + (30) output_expression -> output_expression . COMMA expression + + DELETE reduce using rule 28 (statement -> OUTPUT output_expression .) + DECLARE reduce using rule 28 (statement -> OUTPUT output_expression .) + PUBLIC reduce using rule 28 (statement -> OUTPUT output_expression .) + PRIVATE reduce using rule 28 (statement -> OUTPUT output_expression .) + CONSTANT reduce using rule 28 (statement -> OUTPUT output_expression .) + INPUT reduce using rule 28 (statement -> OUTPUT output_expression .) + OUTPUT reduce using rule 28 (statement -> OUTPUT output_expression .) + _OUTPUT reduce using rule 28 (statement -> OUTPUT output_expression .) + IF reduce using rule 28 (statement -> OUTPUT output_expression .) + CASE reduce using rule 28 (statement -> OUTPUT output_expression .) + FOR reduce using rule 28 (statement -> OUTPUT output_expression .) + REPEAT reduce using rule 28 (statement -> OUTPUT output_expression .) + WHILE reduce using rule 28 (statement -> OUTPUT output_expression .) + PROCEDURE reduce using rule 28 (statement -> OUTPUT output_expression .) + CALL reduce using rule 28 (statement -> OUTPUT output_expression .) + FUNCTION reduce using rule 28 (statement -> OUTPUT output_expression .) + RETURN reduce using rule 28 (statement -> OUTPUT output_expression .) + OPENFILE reduce using rule 28 (statement -> OUTPUT output_expression .) + READFILE reduce using rule 28 (statement -> OUTPUT output_expression .) + WRITEFILE reduce using rule 28 (statement -> OUTPUT output_expression .) + CLOSEFILE reduce using rule 28 (statement -> OUTPUT output_expression .) + SEEK reduce using rule 28 (statement -> OUTPUT output_expression .) + TYPE reduce using rule 28 (statement -> OUTPUT output_expression .) + PASS reduce using rule 28 (statement -> OUTPUT output_expression .) + IMPORT reduce using rule 28 (statement -> OUTPUT output_expression .) + CLASS reduce using rule 28 (statement -> OUTPUT output_expression .) + LEFT_SQUARE reduce using rule 28 (statement -> OUTPUT output_expression .) + ID reduce using rule 28 (statement -> OUTPUT output_expression .) + NOT reduce using rule 28 (statement -> OUTPUT output_expression .) + MINUS reduce using rule 28 (statement -> OUTPUT output_expression .) + PLUS reduce using rule 28 (statement -> OUTPUT output_expression .) + LEFT_PAREN reduce using rule 28 (statement -> OUTPUT output_expression .) + DATE reduce using rule 28 (statement -> OUTPUT output_expression .) + BOOLEAN reduce using rule 28 (statement -> OUTPUT output_expression .) + CHAR reduce using rule 28 (statement -> OUTPUT output_expression .) + STRING reduce using rule 28 (statement -> OUTPUT output_expression .) + REAL reduce using rule 28 (statement -> OUTPUT output_expression .) + INTEGER reduce using rule 28 (statement -> OUTPUT output_expression .) + MOD reduce using rule 28 (statement -> OUTPUT output_expression .) + DIV reduce using rule 28 (statement -> OUTPUT output_expression .) + POINTER reduce using rule 28 (statement -> OUTPUT output_expression .) + NEW reduce using rule 28 (statement -> OUTPUT output_expression .) + $end reduce using rule 28 (statement -> OUTPUT output_expression .) + UNTIL reduce using rule 28 (statement -> OUTPUT output_expression .) + ENDWHILE reduce using rule 28 (statement -> OUTPUT output_expression .) + ENDTYPE reduce using rule 28 (statement -> OUTPUT output_expression .) + ENDCLASS reduce using rule 28 (statement -> OUTPUT output_expression .) + ELSE reduce using rule 28 (statement -> OUTPUT output_expression .) + ENDIF reduce using rule 28 (statement -> OUTPUT output_expression .) + ENDPROCEDURE reduce using rule 28 (statement -> OUTPUT output_expression .) + SEMICOLON reduce using rule 28 (statement -> OUTPUT output_expression .) + NEXT reduce using rule 28 (statement -> OUTPUT output_expression .) + ENDFUNCTION reduce using rule 28 (statement -> OUTPUT output_expression .) + COMMA shift and go to state 151 -state 81 +state 84 - (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 + (31) output_expression -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + COMMA reduce using rule 31 (output_expression -> expression .) + DELETE reduce using rule 31 (output_expression -> expression .) + DECLARE reduce using rule 31 (output_expression -> expression .) + PUBLIC reduce using rule 31 (output_expression -> expression .) + PRIVATE reduce using rule 31 (output_expression -> expression .) + CONSTANT reduce using rule 31 (output_expression -> expression .) + INPUT reduce using rule 31 (output_expression -> expression .) + OUTPUT reduce using rule 31 (output_expression -> expression .) + _OUTPUT reduce using rule 31 (output_expression -> expression .) + IF reduce using rule 31 (output_expression -> expression .) + CASE reduce using rule 31 (output_expression -> expression .) + FOR reduce using rule 31 (output_expression -> expression .) + REPEAT reduce using rule 31 (output_expression -> expression .) + WHILE reduce using rule 31 (output_expression -> expression .) + PROCEDURE reduce using rule 31 (output_expression -> expression .) + CALL reduce using rule 31 (output_expression -> expression .) + FUNCTION reduce using rule 31 (output_expression -> expression .) + RETURN reduce using rule 31 (output_expression -> expression .) + OPENFILE reduce using rule 31 (output_expression -> expression .) + READFILE reduce using rule 31 (output_expression -> expression .) + WRITEFILE reduce using rule 31 (output_expression -> expression .) + CLOSEFILE reduce using rule 31 (output_expression -> expression .) + SEEK reduce using rule 31 (output_expression -> expression .) + TYPE reduce using rule 31 (output_expression -> expression .) + PASS reduce using rule 31 (output_expression -> expression .) + IMPORT reduce using rule 31 (output_expression -> expression .) + CLASS reduce using rule 31 (output_expression -> expression .) + LEFT_SQUARE reduce using rule 31 (output_expression -> expression .) + ID reduce using rule 31 (output_expression -> expression .) + NOT reduce using rule 31 (output_expression -> expression .) + LEFT_PAREN reduce using rule 31 (output_expression -> expression .) + DATE reduce using rule 31 (output_expression -> expression .) + BOOLEAN reduce using rule 31 (output_expression -> expression .) + CHAR reduce using rule 31 (output_expression -> expression .) + STRING reduce using rule 31 (output_expression -> expression .) + REAL reduce using rule 31 (output_expression -> expression .) + INTEGER reduce using rule 31 (output_expression -> expression .) + NEW reduce using rule 31 (output_expression -> expression .) + $end reduce using rule 31 (output_expression -> expression .) + UNTIL reduce using rule 31 (output_expression -> expression .) + ENDWHILE reduce using rule 31 (output_expression -> expression .) + ENDTYPE reduce using rule 31 (output_expression -> expression .) + ENDCLASS reduce using rule 31 (output_expression -> expression .) + ELSE reduce using rule 31 (output_expression -> expression .) + ENDIF reduce using rule 31 (output_expression -> expression .) + ENDPROCEDURE reduce using rule 31 (output_expression -> expression .) + SEMICOLON reduce using rule 31 (output_expression -> expression .) + NEXT reduce using rule 31 (output_expression -> expression .) + ENDFUNCTION reduce using rule 31 (output_expression -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 31 (output_expression -> expression .) ] + ! PLUS [ reduce using rule 31 (output_expression -> expression .) ] + ! MOD [ reduce using rule 31 (output_expression -> expression .) ] + ! DIV [ reduce using rule 31 (output_expression -> expression .) ] + ! POINTER [ reduce using rule 31 (output_expression -> expression .) ] -state 82 +state 85 - (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 + (29) statement -> _OUTPUT output_expression . + (30) output_expression -> output_expression . COMMA expression + + DELETE reduce using rule 29 (statement -> _OUTPUT output_expression .) + DECLARE reduce using rule 29 (statement -> _OUTPUT output_expression .) + PUBLIC reduce using rule 29 (statement -> _OUTPUT output_expression .) + PRIVATE reduce using rule 29 (statement -> _OUTPUT output_expression .) + CONSTANT reduce using rule 29 (statement -> _OUTPUT output_expression .) + INPUT reduce using rule 29 (statement -> _OUTPUT output_expression .) + OUTPUT reduce using rule 29 (statement -> _OUTPUT output_expression .) + _OUTPUT reduce using rule 29 (statement -> _OUTPUT output_expression .) + IF reduce using rule 29 (statement -> _OUTPUT output_expression .) + CASE reduce using rule 29 (statement -> _OUTPUT output_expression .) + FOR reduce using rule 29 (statement -> _OUTPUT output_expression .) + REPEAT reduce using rule 29 (statement -> _OUTPUT output_expression .) + WHILE reduce using rule 29 (statement -> _OUTPUT output_expression .) + PROCEDURE reduce using rule 29 (statement -> _OUTPUT output_expression .) + CALL reduce using rule 29 (statement -> _OUTPUT output_expression .) + FUNCTION reduce using rule 29 (statement -> _OUTPUT output_expression .) + RETURN reduce using rule 29 (statement -> _OUTPUT output_expression .) + OPENFILE reduce using rule 29 (statement -> _OUTPUT output_expression .) + READFILE reduce using rule 29 (statement -> _OUTPUT output_expression .) + WRITEFILE reduce using rule 29 (statement -> _OUTPUT output_expression .) + CLOSEFILE reduce using rule 29 (statement -> _OUTPUT output_expression .) + SEEK reduce using rule 29 (statement -> _OUTPUT output_expression .) + TYPE reduce using rule 29 (statement -> _OUTPUT output_expression .) + PASS reduce using rule 29 (statement -> _OUTPUT output_expression .) + IMPORT reduce using rule 29 (statement -> _OUTPUT output_expression .) + CLASS reduce using rule 29 (statement -> _OUTPUT output_expression .) + LEFT_SQUARE reduce using rule 29 (statement -> _OUTPUT output_expression .) + ID reduce using rule 29 (statement -> _OUTPUT output_expression .) + NOT reduce using rule 29 (statement -> _OUTPUT output_expression .) + MINUS reduce using rule 29 (statement -> _OUTPUT output_expression .) + PLUS reduce using rule 29 (statement -> _OUTPUT output_expression .) + LEFT_PAREN reduce using rule 29 (statement -> _OUTPUT output_expression .) + DATE reduce using rule 29 (statement -> _OUTPUT output_expression .) + BOOLEAN reduce using rule 29 (statement -> _OUTPUT output_expression .) + CHAR reduce using rule 29 (statement -> _OUTPUT output_expression .) + STRING reduce using rule 29 (statement -> _OUTPUT output_expression .) + REAL reduce using rule 29 (statement -> _OUTPUT output_expression .) + INTEGER reduce using rule 29 (statement -> _OUTPUT output_expression .) + MOD reduce using rule 29 (statement -> _OUTPUT output_expression .) + DIV reduce using rule 29 (statement -> _OUTPUT output_expression .) + POINTER reduce using rule 29 (statement -> _OUTPUT output_expression .) + NEW reduce using rule 29 (statement -> _OUTPUT output_expression .) + $end reduce using rule 29 (statement -> _OUTPUT output_expression .) + UNTIL reduce using rule 29 (statement -> _OUTPUT output_expression .) + ENDWHILE reduce using rule 29 (statement -> _OUTPUT output_expression .) + ENDTYPE reduce using rule 29 (statement -> _OUTPUT output_expression .) + ENDCLASS reduce using rule 29 (statement -> _OUTPUT output_expression .) + ELSE reduce using rule 29 (statement -> _OUTPUT output_expression .) + ENDIF reduce using rule 29 (statement -> _OUTPUT output_expression .) + ENDPROCEDURE reduce using rule 29 (statement -> _OUTPUT output_expression .) + SEMICOLON reduce using rule 29 (statement -> _OUTPUT output_expression .) + NEXT reduce using rule 29 (statement -> _OUTPUT output_expression .) + ENDFUNCTION reduce using rule 29 (statement -> _OUTPUT output_expression .) + COMMA shift and go to state 151 -state 83 +state 86 - (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 - 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 + (32) statement -> IF expression . THEN statements ELSE statements ENDIF + (33) statement -> IF expression . THEN statements ENDIF + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + THEN shift and go to state 152 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 84 +state 87 - (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 + (34) statement -> CASE OF . expression cases ENDCASE + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -4819,132 +4888,135 @@ state 84 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 146 + expression shift and go to state 153 -state 85 +state 88 - (37) statement -> FOR ID . ASSIGN expression TO expression STEP expression statements NEXT ID - (38) statement -> FOR ID . ASSIGN expression TO expression statements NEXT ID + (42) statement -> FOR ID . ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> FOR ID . ASSIGN expression TO expression statements NEXT ID - ASSIGN shift and go to state 147 + ASSIGN shift and go to state 154 -state 86 +state 89 - (39) statement -> REPEAT statements . UNTIL expression + (44) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + UNTIL 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 @@ -4991,158 +5063,161 @@ state 86 expression shift and go to state 9 statement shift and go to state 46 -state 87 +state 90 - (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 + (45) statement -> WHILE expression . DO statements ENDWHILE + (46) statement -> WHILE expression . statements ENDWHILE + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER (1) statements -> . statements statement (2) 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 -> . 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 - 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 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 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 155 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + DO shift and go to state 156 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 158 + DIV shift and go to state 159 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 160 + MINUS shift and go to state 161 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 162 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -5182,657 +5257,660 @@ state 87 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 150 + statements shift and go to state 157 statement shift and go to state 2 -state 88 +state 91 - (83) statement -> PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (85) statement -> PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (88) statement -> PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 156 + LEFT_PAREN shift and go to state 163 -state 89 +state 92 - (84) statement -> PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (86) statement -> PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 157 + LEFT_PAREN shift and go to state 164 -state 90 +state 93 - (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 - 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 + (68) expression -> LEFT_PAREN expression . RIGHT_PAREN + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_PAREN shift and go to state 165 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 91 +state 94 - (141) expression -> NEW ID . - (142) expression -> NEW ID . LEFT_PAREN parameters RIGHT_PAREN + (146) expression -> NEW ID . + (147) expression -> NEW ID . LEFT_PAREN parameters RIGHT_PAREN ! shift/reduce conflict for LEFT_PAREN resolved as shift - 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 .) ] + ASSIGN reduce using rule 146 (expression -> NEW ID .) + OR reduce using rule 146 (expression -> NEW ID .) + AND reduce using rule 146 (expression -> NEW ID .) + EQUAL reduce using rule 146 (expression -> NEW ID .) + NOT_EQUAL reduce using rule 146 (expression -> NEW ID .) + LESS reduce using rule 146 (expression -> NEW ID .) + GREATER reduce using rule 146 (expression -> NEW ID .) + LESS_EQUAL reduce using rule 146 (expression -> NEW ID .) + GREATER_EQUAL reduce using rule 146 (expression -> NEW ID .) + MOD reduce using rule 146 (expression -> NEW ID .) + DIV reduce using rule 146 (expression -> NEW ID .) + MUL reduce using rule 146 (expression -> NEW ID .) + N_DIV reduce using rule 146 (expression -> NEW ID .) + PLUS reduce using rule 146 (expression -> NEW ID .) + MINUS reduce using rule 146 (expression -> NEW ID .) + CONNECT reduce using rule 146 (expression -> NEW ID .) + DOT reduce using rule 146 (expression -> NEW ID .) + POINTER reduce using rule 146 (expression -> NEW ID .) + DELETE reduce using rule 146 (expression -> NEW ID .) + DECLARE reduce using rule 146 (expression -> NEW ID .) + PUBLIC reduce using rule 146 (expression -> NEW ID .) + PRIVATE reduce using rule 146 (expression -> NEW ID .) + CONSTANT reduce using rule 146 (expression -> NEW ID .) + INPUT reduce using rule 146 (expression -> NEW ID .) + OUTPUT reduce using rule 146 (expression -> NEW ID .) + _OUTPUT reduce using rule 146 (expression -> NEW ID .) + IF reduce using rule 146 (expression -> NEW ID .) + CASE reduce using rule 146 (expression -> NEW ID .) + FOR reduce using rule 146 (expression -> NEW ID .) + REPEAT reduce using rule 146 (expression -> NEW ID .) + WHILE reduce using rule 146 (expression -> NEW ID .) + PROCEDURE reduce using rule 146 (expression -> NEW ID .) + CALL reduce using rule 146 (expression -> NEW ID .) + FUNCTION reduce using rule 146 (expression -> NEW ID .) + RETURN reduce using rule 146 (expression -> NEW ID .) + OPENFILE reduce using rule 146 (expression -> NEW ID .) + READFILE reduce using rule 146 (expression -> NEW ID .) + WRITEFILE reduce using rule 146 (expression -> NEW ID .) + CLOSEFILE reduce using rule 146 (expression -> NEW ID .) + SEEK reduce using rule 146 (expression -> NEW ID .) + TYPE reduce using rule 146 (expression -> NEW ID .) + PASS reduce using rule 146 (expression -> NEW ID .) + IMPORT reduce using rule 146 (expression -> NEW ID .) + CLASS reduce using rule 146 (expression -> NEW ID .) + LEFT_SQUARE reduce using rule 146 (expression -> NEW ID .) + ID reduce using rule 146 (expression -> NEW ID .) + NOT reduce using rule 146 (expression -> NEW ID .) + DATE reduce using rule 146 (expression -> NEW ID .) + BOOLEAN reduce using rule 146 (expression -> NEW ID .) + CHAR reduce using rule 146 (expression -> NEW ID .) + STRING reduce using rule 146 (expression -> NEW ID .) + REAL reduce using rule 146 (expression -> NEW ID .) + INTEGER reduce using rule 146 (expression -> NEW ID .) + NEW reduce using rule 146 (expression -> NEW ID .) + $end reduce using rule 146 (expression -> NEW ID .) + RIGHT_SQUARE reduce using rule 146 (expression -> NEW ID .) + COMMA reduce using rule 146 (expression -> NEW ID .) + UNTIL reduce using rule 146 (expression -> NEW ID .) + ENDWHILE reduce using rule 146 (expression -> NEW ID .) + ENDTYPE reduce using rule 146 (expression -> NEW ID .) + ENDCLASS reduce using rule 146 (expression -> NEW ID .) + ELSE reduce using rule 146 (expression -> NEW ID .) + ENDIF reduce using rule 146 (expression -> NEW ID .) + ENDPROCEDURE reduce using rule 146 (expression -> NEW ID .) + SEMICOLON reduce using rule 146 (expression -> NEW ID .) + NEXT reduce using rule 146 (expression -> NEW ID .) + ENDFUNCTION reduce using rule 146 (expression -> NEW ID .) + THEN reduce using rule 146 (expression -> NEW ID .) + DO reduce using rule 146 (expression -> NEW ID .) + RIGHT_PAREN reduce using rule 146 (expression -> NEW ID .) + OTHERWISE reduce using rule 146 (expression -> NEW ID .) + TO reduce using rule 146 (expression -> NEW ID .) + COLON reduce using rule 146 (expression -> NEW ID .) + STEP reduce using rule 146 (expression -> NEW ID .) + LEFT_PAREN shift and go to state 166 + + ! LEFT_PAREN [ reduce using rule 146 (expression -> NEW ID .) ] -state 92 +state 95 - (95) statement -> CALL ID . LEFT_PAREN parameters RIGHT_PAREN - (96) statement -> CALL ID . LEFT_PAREN RIGHT_PAREN + (100) statement -> CALL ID . LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> CALL ID . LEFT_PAREN RIGHT_PAREN - LEFT_PAREN shift and go to state 160 + LEFT_PAREN shift and go to state 167 -state 93 +state 96 - (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 + (102) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - LEFT_PAREN shift and go to state 161 + LEFT_PAREN shift and go to state 168 -state 94 +state 97 - (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 + (124) statement -> RETURN expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + DELETE reduce using rule 124 (statement -> RETURN expression .) + DECLARE reduce using rule 124 (statement -> RETURN expression .) + PUBLIC reduce using rule 124 (statement -> RETURN expression .) + PRIVATE reduce using rule 124 (statement -> RETURN expression .) + CONSTANT reduce using rule 124 (statement -> RETURN expression .) + INPUT reduce using rule 124 (statement -> RETURN expression .) + OUTPUT reduce using rule 124 (statement -> RETURN expression .) + _OUTPUT reduce using rule 124 (statement -> RETURN expression .) + IF reduce using rule 124 (statement -> RETURN expression .) + CASE reduce using rule 124 (statement -> RETURN expression .) + FOR reduce using rule 124 (statement -> RETURN expression .) + REPEAT reduce using rule 124 (statement -> RETURN expression .) + WHILE reduce using rule 124 (statement -> RETURN expression .) + PROCEDURE reduce using rule 124 (statement -> RETURN expression .) + CALL reduce using rule 124 (statement -> RETURN expression .) + FUNCTION reduce using rule 124 (statement -> RETURN expression .) + RETURN reduce using rule 124 (statement -> RETURN expression .) + OPENFILE reduce using rule 124 (statement -> RETURN expression .) + READFILE reduce using rule 124 (statement -> RETURN expression .) + WRITEFILE reduce using rule 124 (statement -> RETURN expression .) + CLOSEFILE reduce using rule 124 (statement -> RETURN expression .) + SEEK reduce using rule 124 (statement -> RETURN expression .) + TYPE reduce using rule 124 (statement -> RETURN expression .) + PASS reduce using rule 124 (statement -> RETURN expression .) + IMPORT reduce using rule 124 (statement -> RETURN expression .) + CLASS reduce using rule 124 (statement -> RETURN expression .) + LEFT_SQUARE reduce using rule 124 (statement -> RETURN expression .) + ID reduce using rule 124 (statement -> RETURN expression .) + NOT reduce using rule 124 (statement -> RETURN expression .) + LEFT_PAREN reduce using rule 124 (statement -> RETURN expression .) + DATE reduce using rule 124 (statement -> RETURN expression .) + BOOLEAN reduce using rule 124 (statement -> RETURN expression .) + CHAR reduce using rule 124 (statement -> RETURN expression .) + STRING reduce using rule 124 (statement -> RETURN expression .) + REAL reduce using rule 124 (statement -> RETURN expression .) + INTEGER reduce using rule 124 (statement -> RETURN expression .) + NEW reduce using rule 124 (statement -> RETURN expression .) + $end reduce using rule 124 (statement -> RETURN expression .) + UNTIL reduce using rule 124 (statement -> RETURN expression .) + ENDWHILE reduce using rule 124 (statement -> RETURN expression .) + ENDTYPE reduce using rule 124 (statement -> RETURN expression .) + ENDCLASS reduce using rule 124 (statement -> RETURN expression .) + ELSE reduce using rule 124 (statement -> RETURN expression .) + ENDIF reduce using rule 124 (statement -> RETURN expression .) + ENDPROCEDURE reduce using rule 124 (statement -> RETURN expression .) + SEMICOLON reduce using rule 124 (statement -> RETURN expression .) + NEXT reduce using rule 124 (statement -> RETURN expression .) + ENDFUNCTION reduce using rule 124 (statement -> RETURN expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 124 (statement -> RETURN expression .) ] + ! PLUS [ reduce using rule 124 (statement -> RETURN expression .) ] + ! MOD [ reduce using rule 124 (statement -> RETURN expression .) ] + ! DIV [ reduce using rule 124 (statement -> RETURN expression .) ] + ! POINTER [ reduce using rule 124 (statement -> RETURN expression .) ] -state 95 +state 98 - (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 - 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 + (125) statement -> OPENFILE expression . FOR READ + (126) statement -> OPENFILE expression . FOR WRITE + (127) statement -> OPENFILE expression . FOR APPEND + (128) statement -> OPENFILE expression . FOR RANDOM + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + FOR shift and go to state 169 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 96 +state 99 - (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 - 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 + (129) statement -> READFILE expression . COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> READFILE expression . COMMA ID + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + COMMA shift and go to state 170 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 97 +state 100 - (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 164 - 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 + (131) statement -> WRITEFILE expression . COMMA expression + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + COMMA shift and go to state 171 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 98 +state 101 - (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 + (132) statement -> CLOSEFILE expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 -> 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 - 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 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 .) ] + DELETE reduce using rule 132 (statement -> CLOSEFILE expression .) + DECLARE reduce using rule 132 (statement -> CLOSEFILE expression .) + PUBLIC reduce using rule 132 (statement -> CLOSEFILE expression .) + PRIVATE reduce using rule 132 (statement -> CLOSEFILE expression .) + CONSTANT reduce using rule 132 (statement -> CLOSEFILE expression .) + INPUT reduce using rule 132 (statement -> CLOSEFILE expression .) + OUTPUT reduce using rule 132 (statement -> CLOSEFILE expression .) + _OUTPUT reduce using rule 132 (statement -> CLOSEFILE expression .) + IF reduce using rule 132 (statement -> CLOSEFILE expression .) + CASE reduce using rule 132 (statement -> CLOSEFILE expression .) + FOR reduce using rule 132 (statement -> CLOSEFILE expression .) + REPEAT reduce using rule 132 (statement -> CLOSEFILE expression .) + WHILE reduce using rule 132 (statement -> CLOSEFILE expression .) + PROCEDURE reduce using rule 132 (statement -> CLOSEFILE expression .) + CALL reduce using rule 132 (statement -> CLOSEFILE expression .) + FUNCTION reduce using rule 132 (statement -> CLOSEFILE expression .) + RETURN reduce using rule 132 (statement -> CLOSEFILE expression .) + OPENFILE reduce using rule 132 (statement -> CLOSEFILE expression .) + READFILE reduce using rule 132 (statement -> CLOSEFILE expression .) + WRITEFILE reduce using rule 132 (statement -> CLOSEFILE expression .) + CLOSEFILE reduce using rule 132 (statement -> CLOSEFILE expression .) + SEEK reduce using rule 132 (statement -> CLOSEFILE expression .) + TYPE reduce using rule 132 (statement -> CLOSEFILE expression .) + PASS reduce using rule 132 (statement -> CLOSEFILE expression .) + IMPORT reduce using rule 132 (statement -> CLOSEFILE expression .) + CLASS reduce using rule 132 (statement -> CLOSEFILE expression .) + LEFT_SQUARE reduce using rule 132 (statement -> CLOSEFILE expression .) + ID reduce using rule 132 (statement -> CLOSEFILE expression .) + NOT reduce using rule 132 (statement -> CLOSEFILE expression .) + LEFT_PAREN reduce using rule 132 (statement -> CLOSEFILE expression .) + DATE reduce using rule 132 (statement -> CLOSEFILE expression .) + BOOLEAN reduce using rule 132 (statement -> CLOSEFILE expression .) + CHAR reduce using rule 132 (statement -> CLOSEFILE expression .) + STRING reduce using rule 132 (statement -> CLOSEFILE expression .) + REAL reduce using rule 132 (statement -> CLOSEFILE expression .) + INTEGER reduce using rule 132 (statement -> CLOSEFILE expression .) + NEW reduce using rule 132 (statement -> CLOSEFILE expression .) + $end reduce using rule 132 (statement -> CLOSEFILE expression .) + UNTIL reduce using rule 132 (statement -> CLOSEFILE expression .) + ENDWHILE reduce using rule 132 (statement -> CLOSEFILE expression .) + ENDTYPE reduce using rule 132 (statement -> CLOSEFILE expression .) + ENDCLASS reduce using rule 132 (statement -> CLOSEFILE expression .) + ELSE reduce using rule 132 (statement -> CLOSEFILE expression .) + ENDIF reduce using rule 132 (statement -> CLOSEFILE expression .) + ENDPROCEDURE reduce using rule 132 (statement -> CLOSEFILE expression .) + SEMICOLON reduce using rule 132 (statement -> CLOSEFILE expression .) + NEXT reduce using rule 132 (statement -> CLOSEFILE expression .) + ENDFUNCTION reduce using rule 132 (statement -> CLOSEFILE expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 132 (statement -> CLOSEFILE expression .) ] + ! PLUS [ reduce using rule 132 (statement -> CLOSEFILE expression .) ] + ! MOD [ reduce using rule 132 (statement -> CLOSEFILE expression .) ] + ! DIV [ reduce using rule 132 (statement -> CLOSEFILE expression .) ] + ! POINTER [ reduce using rule 132 (statement -> CLOSEFILE expression .) ] -state 99 +state 102 - (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 - 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 + (133) statement -> SEEK expression . COMMA expression + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + COMMA shift and go to state 172 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 100 +state 103 - (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 + (134) statement -> TYPE ID . statements ENDTYPE + (136) statement -> TYPE ID . EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> TYPE ID . EQUAL POINTER ID + (148) statement -> TYPE ID . EQUAL SET OF ID (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + EQUAL shift and go to state 174 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -5876,30 +5954,30 @@ state 100 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 166 + statements shift and go to state 173 statement shift and go to state 2 expression shift and go to state 9 -state 101 +state 104 - (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 + (139) expression -> POINTER expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER ! shift/reduce conflict for OR resolved as shift ! shift/reduce conflict for AND resolved as shift @@ -5918,318 +5996,321 @@ 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 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 - 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 - - ! 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 .) ] + ASSIGN reduce using rule 139 (expression -> POINTER expression .) + DELETE reduce using rule 139 (expression -> POINTER expression .) + DECLARE reduce using rule 139 (expression -> POINTER expression .) + PUBLIC reduce using rule 139 (expression -> POINTER expression .) + PRIVATE reduce using rule 139 (expression -> POINTER expression .) + CONSTANT reduce using rule 139 (expression -> POINTER expression .) + INPUT reduce using rule 139 (expression -> POINTER expression .) + OUTPUT reduce using rule 139 (expression -> POINTER expression .) + _OUTPUT reduce using rule 139 (expression -> POINTER expression .) + IF reduce using rule 139 (expression -> POINTER expression .) + CASE reduce using rule 139 (expression -> POINTER expression .) + FOR reduce using rule 139 (expression -> POINTER expression .) + REPEAT reduce using rule 139 (expression -> POINTER expression .) + WHILE reduce using rule 139 (expression -> POINTER expression .) + PROCEDURE reduce using rule 139 (expression -> POINTER expression .) + CALL reduce using rule 139 (expression -> POINTER expression .) + FUNCTION reduce using rule 139 (expression -> POINTER expression .) + RETURN reduce using rule 139 (expression -> POINTER expression .) + OPENFILE reduce using rule 139 (expression -> POINTER expression .) + READFILE reduce using rule 139 (expression -> POINTER expression .) + WRITEFILE reduce using rule 139 (expression -> POINTER expression .) + CLOSEFILE reduce using rule 139 (expression -> POINTER expression .) + SEEK reduce using rule 139 (expression -> POINTER expression .) + TYPE reduce using rule 139 (expression -> POINTER expression .) + PASS reduce using rule 139 (expression -> POINTER expression .) + IMPORT reduce using rule 139 (expression -> POINTER expression .) + CLASS reduce using rule 139 (expression -> POINTER expression .) + LEFT_SQUARE reduce using rule 139 (expression -> POINTER expression .) + ID reduce using rule 139 (expression -> POINTER expression .) + NOT reduce using rule 139 (expression -> POINTER expression .) + LEFT_PAREN reduce using rule 139 (expression -> POINTER expression .) + DATE reduce using rule 139 (expression -> POINTER expression .) + BOOLEAN reduce using rule 139 (expression -> POINTER expression .) + CHAR reduce using rule 139 (expression -> POINTER expression .) + STRING reduce using rule 139 (expression -> POINTER expression .) + REAL reduce using rule 139 (expression -> POINTER expression .) + INTEGER reduce using rule 139 (expression -> POINTER expression .) + NEW reduce using rule 139 (expression -> POINTER expression .) + $end reduce using rule 139 (expression -> POINTER expression .) + RIGHT_SQUARE reduce using rule 139 (expression -> POINTER expression .) + COMMA reduce using rule 139 (expression -> POINTER expression .) + UNTIL reduce using rule 139 (expression -> POINTER expression .) + ENDWHILE reduce using rule 139 (expression -> POINTER expression .) + ENDTYPE reduce using rule 139 (expression -> POINTER expression .) + ENDCLASS reduce using rule 139 (expression -> POINTER expression .) + ELSE reduce using rule 139 (expression -> POINTER expression .) + ENDIF reduce using rule 139 (expression -> POINTER expression .) + ENDPROCEDURE reduce using rule 139 (expression -> POINTER expression .) + SEMICOLON reduce using rule 139 (expression -> POINTER expression .) + NEXT reduce using rule 139 (expression -> POINTER expression .) + ENDFUNCTION reduce using rule 139 (expression -> POINTER expression .) + THEN reduce using rule 139 (expression -> POINTER expression .) + DO reduce using rule 139 (expression -> POINTER expression .) + RIGHT_PAREN reduce using rule 139 (expression -> POINTER expression .) + OTHERWISE reduce using rule 139 (expression -> POINTER expression .) + TO reduce using rule 139 (expression -> POINTER expression .) + COLON reduce using rule 139 (expression -> POINTER expression .) + STEP reduce using rule 139 (expression -> POINTER expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! OR [ reduce using rule 139 (expression -> POINTER expression .) ] + ! AND [ reduce using rule 139 (expression -> POINTER expression .) ] + ! EQUAL [ reduce using rule 139 (expression -> POINTER expression .) ] + ! NOT_EQUAL [ reduce using rule 139 (expression -> POINTER expression .) ] + ! LESS [ reduce using rule 139 (expression -> POINTER expression .) ] + ! GREATER [ reduce using rule 139 (expression -> POINTER expression .) ] + ! LESS_EQUAL [ reduce using rule 139 (expression -> POINTER expression .) ] + ! GREATER_EQUAL [ reduce using rule 139 (expression -> POINTER expression .) ] + ! MOD [ reduce using rule 139 (expression -> POINTER expression .) ] + ! DIV [ reduce using rule 139 (expression -> POINTER expression .) ] + ! MUL [ reduce using rule 139 (expression -> POINTER expression .) ] + ! N_DIV [ reduce using rule 139 (expression -> POINTER expression .) ] + ! PLUS [ reduce using rule 139 (expression -> POINTER expression .) ] + ! MINUS [ reduce using rule 139 (expression -> POINTER expression .) ] + ! CONNECT [ reduce using rule 139 (expression -> POINTER expression .) ] + ! DOT [ reduce using rule 139 (expression -> POINTER expression .) ] + ! POINTER [ reduce using rule 139 (expression -> POINTER expression .) ] -state 102 +state 105 - (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 + (143) statement -> IMPORT expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + DELETE reduce using rule 143 (statement -> IMPORT expression .) + DECLARE reduce using rule 143 (statement -> IMPORT expression .) + PUBLIC reduce using rule 143 (statement -> IMPORT expression .) + PRIVATE reduce using rule 143 (statement -> IMPORT expression .) + CONSTANT reduce using rule 143 (statement -> IMPORT expression .) + INPUT reduce using rule 143 (statement -> IMPORT expression .) + OUTPUT reduce using rule 143 (statement -> IMPORT expression .) + _OUTPUT reduce using rule 143 (statement -> IMPORT expression .) + IF reduce using rule 143 (statement -> IMPORT expression .) + CASE reduce using rule 143 (statement -> IMPORT expression .) + FOR reduce using rule 143 (statement -> IMPORT expression .) + REPEAT reduce using rule 143 (statement -> IMPORT expression .) + WHILE reduce using rule 143 (statement -> IMPORT expression .) + PROCEDURE reduce using rule 143 (statement -> IMPORT expression .) + CALL reduce using rule 143 (statement -> IMPORT expression .) + FUNCTION reduce using rule 143 (statement -> IMPORT expression .) + RETURN reduce using rule 143 (statement -> IMPORT expression .) + OPENFILE reduce using rule 143 (statement -> IMPORT expression .) + READFILE reduce using rule 143 (statement -> IMPORT expression .) + WRITEFILE reduce using rule 143 (statement -> IMPORT expression .) + CLOSEFILE reduce using rule 143 (statement -> IMPORT expression .) + SEEK reduce using rule 143 (statement -> IMPORT expression .) + TYPE reduce using rule 143 (statement -> IMPORT expression .) + PASS reduce using rule 143 (statement -> IMPORT expression .) + IMPORT reduce using rule 143 (statement -> IMPORT expression .) + CLASS reduce using rule 143 (statement -> IMPORT expression .) + LEFT_SQUARE reduce using rule 143 (statement -> IMPORT expression .) + ID reduce using rule 143 (statement -> IMPORT expression .) + NOT reduce using rule 143 (statement -> IMPORT expression .) + LEFT_PAREN reduce using rule 143 (statement -> IMPORT expression .) + DATE reduce using rule 143 (statement -> IMPORT expression .) + BOOLEAN reduce using rule 143 (statement -> IMPORT expression .) + CHAR reduce using rule 143 (statement -> IMPORT expression .) + STRING reduce using rule 143 (statement -> IMPORT expression .) + REAL reduce using rule 143 (statement -> IMPORT expression .) + INTEGER reduce using rule 143 (statement -> IMPORT expression .) + NEW reduce using rule 143 (statement -> IMPORT expression .) + $end reduce using rule 143 (statement -> IMPORT expression .) + UNTIL reduce using rule 143 (statement -> IMPORT expression .) + ENDWHILE reduce using rule 143 (statement -> IMPORT expression .) + ENDTYPE reduce using rule 143 (statement -> IMPORT expression .) + ENDCLASS reduce using rule 143 (statement -> IMPORT expression .) + ELSE reduce using rule 143 (statement -> IMPORT expression .) + ENDIF reduce using rule 143 (statement -> IMPORT expression .) + ENDPROCEDURE reduce using rule 143 (statement -> IMPORT expression .) + SEMICOLON reduce using rule 143 (statement -> IMPORT expression .) + NEXT reduce using rule 143 (statement -> IMPORT expression .) + ENDFUNCTION reduce using rule 143 (statement -> IMPORT expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 143 (statement -> IMPORT expression .) ] + ! PLUS [ reduce using rule 143 (statement -> IMPORT expression .) ] + ! MOD [ reduce using rule 143 (statement -> IMPORT expression .) ] + ! DIV [ reduce using rule 143 (statement -> IMPORT expression .) ] + ! POINTER [ reduce using rule 143 (statement -> IMPORT expression .) ] -state 103 +state 106 - (139) statement -> CLASS ID . statements ENDCLASS - (140) statement -> CLASS ID . INHERITS ID statements ENDCLASS + (144) statement -> CLASS ID . statements ENDCLASS + (145) statement -> CLASS ID . INHERITS ID statements ENDCLASS (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + INHERITS shift and go to state 176 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -6273,169 +6354,169 @@ state 103 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 168 + statements shift and go to state 175 statement shift and go to state 2 expression shift and go to state 9 -state 104 +state 107 - (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 - 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 - - ! 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 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (52) expression -> NOT expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 52 (expression -> NOT expression .) + OR reduce using rule 52 (expression -> NOT expression .) + AND reduce using rule 52 (expression -> NOT expression .) + CONNECT reduce using rule 52 (expression -> NOT expression .) + DOT reduce using rule 52 (expression -> NOT expression .) + POINTER reduce using rule 52 (expression -> NOT expression .) + DELETE reduce using rule 52 (expression -> NOT expression .) + DECLARE reduce using rule 52 (expression -> NOT expression .) + PUBLIC reduce using rule 52 (expression -> NOT expression .) + PRIVATE reduce using rule 52 (expression -> NOT expression .) + CONSTANT reduce using rule 52 (expression -> NOT expression .) + INPUT reduce using rule 52 (expression -> NOT expression .) + OUTPUT reduce using rule 52 (expression -> NOT expression .) + _OUTPUT reduce using rule 52 (expression -> NOT expression .) + IF reduce using rule 52 (expression -> NOT expression .) + CASE reduce using rule 52 (expression -> NOT expression .) + FOR reduce using rule 52 (expression -> NOT expression .) + REPEAT reduce using rule 52 (expression -> NOT expression .) + WHILE reduce using rule 52 (expression -> NOT expression .) + PROCEDURE reduce using rule 52 (expression -> NOT expression .) + CALL reduce using rule 52 (expression -> NOT expression .) + FUNCTION reduce using rule 52 (expression -> NOT expression .) + RETURN reduce using rule 52 (expression -> NOT expression .) + OPENFILE reduce using rule 52 (expression -> NOT expression .) + READFILE reduce using rule 52 (expression -> NOT expression .) + WRITEFILE reduce using rule 52 (expression -> NOT expression .) + CLOSEFILE reduce using rule 52 (expression -> NOT expression .) + SEEK reduce using rule 52 (expression -> NOT expression .) + TYPE reduce using rule 52 (expression -> NOT expression .) + PASS reduce using rule 52 (expression -> NOT expression .) + IMPORT reduce using rule 52 (expression -> NOT expression .) + CLASS reduce using rule 52 (expression -> NOT expression .) + LEFT_SQUARE reduce using rule 52 (expression -> NOT expression .) + ID reduce using rule 52 (expression -> NOT expression .) + NOT reduce using rule 52 (expression -> NOT expression .) + LEFT_PAREN reduce using rule 52 (expression -> NOT expression .) + DATE reduce using rule 52 (expression -> NOT expression .) + BOOLEAN reduce using rule 52 (expression -> NOT expression .) + CHAR reduce using rule 52 (expression -> NOT expression .) + STRING reduce using rule 52 (expression -> NOT expression .) + REAL reduce using rule 52 (expression -> NOT expression .) + INTEGER reduce using rule 52 (expression -> NOT expression .) + NEW reduce using rule 52 (expression -> NOT expression .) + $end reduce using rule 52 (expression -> NOT expression .) + RIGHT_SQUARE reduce using rule 52 (expression -> NOT expression .) + COMMA reduce using rule 52 (expression -> NOT expression .) + UNTIL reduce using rule 52 (expression -> NOT expression .) + ENDWHILE reduce using rule 52 (expression -> NOT expression .) + ENDTYPE reduce using rule 52 (expression -> NOT expression .) + ENDCLASS reduce using rule 52 (expression -> NOT expression .) + ELSE reduce using rule 52 (expression -> NOT expression .) + ENDIF reduce using rule 52 (expression -> NOT expression .) + ENDPROCEDURE reduce using rule 52 (expression -> NOT expression .) + SEMICOLON reduce using rule 52 (expression -> NOT expression .) + NEXT reduce using rule 52 (expression -> NOT expression .) + ENDFUNCTION reduce using rule 52 (expression -> NOT expression .) + THEN reduce using rule 52 (expression -> NOT expression .) + DO reduce using rule 52 (expression -> NOT expression .) + RIGHT_PAREN reduce using rule 52 (expression -> NOT expression .) + OTHERWISE reduce using rule 52 (expression -> NOT expression .) + TO reduce using rule 52 (expression -> NOT expression .) + COLON reduce using rule 52 (expression -> NOT expression .) + STEP reduce using rule 52 (expression -> NOT expression .) + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! EQUAL [ reduce using rule 52 (expression -> NOT expression .) ] + ! NOT_EQUAL [ reduce using rule 52 (expression -> NOT expression .) ] + ! LESS [ reduce using rule 52 (expression -> NOT expression .) ] + ! GREATER [ reduce using rule 52 (expression -> NOT expression .) ] + ! LESS_EQUAL [ reduce using rule 52 (expression -> NOT expression .) ] + ! GREATER_EQUAL [ reduce using rule 52 (expression -> NOT expression .) ] + ! MOD [ reduce using rule 52 (expression -> NOT expression .) ] + ! DIV [ reduce using rule 52 (expression -> NOT expression .) ] + ! MUL [ reduce using rule 52 (expression -> NOT expression .) ] + ! N_DIV [ reduce using rule 52 (expression -> NOT expression .) ] + ! PLUS [ reduce using rule 52 (expression -> NOT expression .) ] + ! MINUS [ reduce using rule 52 (expression -> NOT expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 105 +state 108 - (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 + (121) expression -> MOD LEFT_PAREN . parameters RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -6454,52 +6535,52 @@ state 105 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 113 + parameters shift and go to state 177 + expression shift and go to state 116 -state 106 +state 109 - (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 + (122) expression -> DIV LEFT_PAREN . parameters RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -6518,548 +6599,576 @@ state 106 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 171 - expression shift and go to state 113 + parameters shift and go to state 178 + expression shift and go to state 116 -state 107 +state 110 - (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 ] - ! 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 ] + (63) expression -> MINUS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 63 (expression -> MINUS expression .) + OR reduce using rule 63 (expression -> MINUS expression .) + AND reduce using rule 63 (expression -> MINUS expression .) + EQUAL reduce using rule 63 (expression -> MINUS expression .) + NOT_EQUAL reduce using rule 63 (expression -> MINUS expression .) + LESS reduce using rule 63 (expression -> MINUS expression .) + GREATER reduce using rule 63 (expression -> MINUS expression .) + LESS_EQUAL reduce using rule 63 (expression -> MINUS expression .) + GREATER_EQUAL reduce using rule 63 (expression -> MINUS expression .) + MOD reduce using rule 63 (expression -> MINUS expression .) + DIV reduce using rule 63 (expression -> MINUS expression .) + MUL reduce using rule 63 (expression -> MINUS expression .) + N_DIV reduce using rule 63 (expression -> MINUS expression .) + PLUS reduce using rule 63 (expression -> MINUS expression .) + MINUS reduce using rule 63 (expression -> MINUS expression .) + CONNECT reduce using rule 63 (expression -> MINUS expression .) + DOT reduce using rule 63 (expression -> MINUS expression .) + POINTER reduce using rule 63 (expression -> MINUS expression .) + DELETE reduce using rule 63 (expression -> MINUS expression .) + DECLARE reduce using rule 63 (expression -> MINUS expression .) + PUBLIC reduce using rule 63 (expression -> MINUS expression .) + PRIVATE reduce using rule 63 (expression -> MINUS expression .) + CONSTANT reduce using rule 63 (expression -> MINUS expression .) + INPUT reduce using rule 63 (expression -> MINUS expression .) + OUTPUT reduce using rule 63 (expression -> MINUS expression .) + _OUTPUT reduce using rule 63 (expression -> MINUS expression .) + IF reduce using rule 63 (expression -> MINUS expression .) + CASE reduce using rule 63 (expression -> MINUS expression .) + FOR reduce using rule 63 (expression -> MINUS expression .) + REPEAT reduce using rule 63 (expression -> MINUS expression .) + WHILE reduce using rule 63 (expression -> MINUS expression .) + PROCEDURE reduce using rule 63 (expression -> MINUS expression .) + CALL reduce using rule 63 (expression -> MINUS expression .) + FUNCTION reduce using rule 63 (expression -> MINUS expression .) + RETURN reduce using rule 63 (expression -> MINUS expression .) + OPENFILE reduce using rule 63 (expression -> MINUS expression .) + READFILE reduce using rule 63 (expression -> MINUS expression .) + WRITEFILE reduce using rule 63 (expression -> MINUS expression .) + CLOSEFILE reduce using rule 63 (expression -> MINUS expression .) + SEEK reduce using rule 63 (expression -> MINUS expression .) + TYPE reduce using rule 63 (expression -> MINUS expression .) + PASS reduce using rule 63 (expression -> MINUS expression .) + IMPORT reduce using rule 63 (expression -> MINUS expression .) + CLASS reduce using rule 63 (expression -> MINUS expression .) + LEFT_SQUARE reduce using rule 63 (expression -> MINUS expression .) + ID reduce using rule 63 (expression -> MINUS expression .) + NOT reduce using rule 63 (expression -> MINUS expression .) + LEFT_PAREN reduce using rule 63 (expression -> MINUS expression .) + DATE reduce using rule 63 (expression -> MINUS expression .) + BOOLEAN reduce using rule 63 (expression -> MINUS expression .) + CHAR reduce using rule 63 (expression -> MINUS expression .) + STRING reduce using rule 63 (expression -> MINUS expression .) + REAL reduce using rule 63 (expression -> MINUS expression .) + INTEGER reduce using rule 63 (expression -> MINUS expression .) + NEW reduce using rule 63 (expression -> MINUS expression .) + $end reduce using rule 63 (expression -> MINUS expression .) + RIGHT_SQUARE reduce using rule 63 (expression -> MINUS expression .) + COMMA reduce using rule 63 (expression -> MINUS expression .) + UNTIL reduce using rule 63 (expression -> MINUS expression .) + ENDWHILE reduce using rule 63 (expression -> MINUS expression .) + ENDTYPE reduce using rule 63 (expression -> MINUS expression .) + ENDCLASS reduce using rule 63 (expression -> MINUS expression .) + ELSE reduce using rule 63 (expression -> MINUS expression .) + ENDIF reduce using rule 63 (expression -> MINUS expression .) + ENDPROCEDURE reduce using rule 63 (expression -> MINUS expression .) + SEMICOLON reduce using rule 63 (expression -> MINUS expression .) + NEXT reduce using rule 63 (expression -> MINUS expression .) + ENDFUNCTION reduce using rule 63 (expression -> MINUS expression .) + THEN reduce using rule 63 (expression -> MINUS expression .) + DO reduce using rule 63 (expression -> MINUS expression .) + RIGHT_PAREN reduce using rule 63 (expression -> MINUS expression .) + OTHERWISE reduce using rule 63 (expression -> MINUS expression .) + TO reduce using rule 63 (expression -> MINUS expression .) + COLON reduce using rule 63 (expression -> MINUS expression .) + STEP reduce using rule 63 (expression -> MINUS expression .) + + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 108 +state 111 - (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 ] - ! 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 ] + (64) expression -> PLUS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 64 (expression -> PLUS expression .) + OR reduce using rule 64 (expression -> PLUS expression .) + AND reduce using rule 64 (expression -> PLUS expression .) + EQUAL reduce using rule 64 (expression -> PLUS expression .) + NOT_EQUAL reduce using rule 64 (expression -> PLUS expression .) + LESS reduce using rule 64 (expression -> PLUS expression .) + GREATER reduce using rule 64 (expression -> PLUS expression .) + LESS_EQUAL reduce using rule 64 (expression -> PLUS expression .) + GREATER_EQUAL reduce using rule 64 (expression -> PLUS expression .) + MOD reduce using rule 64 (expression -> PLUS expression .) + DIV reduce using rule 64 (expression -> PLUS expression .) + MUL reduce using rule 64 (expression -> PLUS expression .) + N_DIV reduce using rule 64 (expression -> PLUS expression .) + PLUS reduce using rule 64 (expression -> PLUS expression .) + MINUS reduce using rule 64 (expression -> PLUS expression .) + CONNECT reduce using rule 64 (expression -> PLUS expression .) + DOT reduce using rule 64 (expression -> PLUS expression .) + POINTER reduce using rule 64 (expression -> PLUS expression .) + DELETE reduce using rule 64 (expression -> PLUS expression .) + DECLARE reduce using rule 64 (expression -> PLUS expression .) + PUBLIC reduce using rule 64 (expression -> PLUS expression .) + PRIVATE reduce using rule 64 (expression -> PLUS expression .) + CONSTANT reduce using rule 64 (expression -> PLUS expression .) + INPUT reduce using rule 64 (expression -> PLUS expression .) + OUTPUT reduce using rule 64 (expression -> PLUS expression .) + _OUTPUT reduce using rule 64 (expression -> PLUS expression .) + IF reduce using rule 64 (expression -> PLUS expression .) + CASE reduce using rule 64 (expression -> PLUS expression .) + FOR reduce using rule 64 (expression -> PLUS expression .) + REPEAT reduce using rule 64 (expression -> PLUS expression .) + WHILE reduce using rule 64 (expression -> PLUS expression .) + PROCEDURE reduce using rule 64 (expression -> PLUS expression .) + CALL reduce using rule 64 (expression -> PLUS expression .) + FUNCTION reduce using rule 64 (expression -> PLUS expression .) + RETURN reduce using rule 64 (expression -> PLUS expression .) + OPENFILE reduce using rule 64 (expression -> PLUS expression .) + READFILE reduce using rule 64 (expression -> PLUS expression .) + WRITEFILE reduce using rule 64 (expression -> PLUS expression .) + CLOSEFILE reduce using rule 64 (expression -> PLUS expression .) + SEEK reduce using rule 64 (expression -> PLUS expression .) + TYPE reduce using rule 64 (expression -> PLUS expression .) + PASS reduce using rule 64 (expression -> PLUS expression .) + IMPORT reduce using rule 64 (expression -> PLUS expression .) + CLASS reduce using rule 64 (expression -> PLUS expression .) + LEFT_SQUARE reduce using rule 64 (expression -> PLUS expression .) + ID reduce using rule 64 (expression -> PLUS expression .) + NOT reduce using rule 64 (expression -> PLUS expression .) + LEFT_PAREN reduce using rule 64 (expression -> PLUS expression .) + DATE reduce using rule 64 (expression -> PLUS expression .) + BOOLEAN reduce using rule 64 (expression -> PLUS expression .) + CHAR reduce using rule 64 (expression -> PLUS expression .) + STRING reduce using rule 64 (expression -> PLUS expression .) + REAL reduce using rule 64 (expression -> PLUS expression .) + INTEGER reduce using rule 64 (expression -> PLUS expression .) + NEW reduce using rule 64 (expression -> PLUS expression .) + $end reduce using rule 64 (expression -> PLUS expression .) + RIGHT_SQUARE reduce using rule 64 (expression -> PLUS expression .) + COMMA reduce using rule 64 (expression -> PLUS expression .) + UNTIL reduce using rule 64 (expression -> PLUS expression .) + ENDWHILE reduce using rule 64 (expression -> PLUS expression .) + ENDTYPE reduce using rule 64 (expression -> PLUS expression .) + ENDCLASS reduce using rule 64 (expression -> PLUS expression .) + ELSE reduce using rule 64 (expression -> PLUS expression .) + ENDIF reduce using rule 64 (expression -> PLUS expression .) + ENDPROCEDURE reduce using rule 64 (expression -> PLUS expression .) + SEMICOLON reduce using rule 64 (expression -> PLUS expression .) + NEXT reduce using rule 64 (expression -> PLUS expression .) + ENDFUNCTION reduce using rule 64 (expression -> PLUS expression .) + THEN reduce using rule 64 (expression -> PLUS expression .) + DO reduce using rule 64 (expression -> PLUS expression .) + RIGHT_PAREN reduce using rule 64 (expression -> PLUS expression .) + OTHERWISE reduce using rule 64 (expression -> PLUS expression .) + TO reduce using rule 64 (expression -> PLUS expression .) + COLON reduce using rule 64 (expression -> PLUS expression .) + STEP reduce using rule 64 (expression -> PLUS expression .) + + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 109 +state 112 - (44) expression -> ID LEFT_SQUARE indexes . RIGHT_SQUARE - (16) indexes -> indexes . COMMA expression + (49) expression -> ID LEFT_SQUARE indexes . RIGHT_SQUARE + (21) indexes -> indexes . COMMA expression - RIGHT_SQUARE shift and go to state 172 - COMMA shift and go to state 173 + RIGHT_SQUARE shift and go to state 179 + COMMA shift and go to state 180 -state 110 +state 113 - (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 - 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 + (22) indexes -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 22 (indexes -> expression .) + COMMA reduce using rule 22 (indexes -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 111 +state 114 - (115) expression -> ID LEFT_PAREN parameters . RIGHT_PAREN - (81) parameters -> parameters . COMMA expression + (120) expression -> ID LEFT_PAREN parameters . RIGHT_PAREN + (86) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 174 - COMMA shift and go to state 175 + RIGHT_PAREN shift and go to state 181 + COMMA shift and go to state 182 -state 112 +state 115 - (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 .) + (123) expression -> ID LEFT_PAREN RIGHT_PAREN . + + ASSIGN reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OR reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + AND reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + EQUAL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NOT_EQUAL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LESS reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + GREATER reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LESS_EQUAL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + MOD reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DIV reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + MUL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + N_DIV reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PLUS reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + MINUS reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CONNECT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DOT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + POINTER reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DELETE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DECLARE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PUBLIC reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PRIVATE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CONSTANT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + INPUT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OUTPUT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + _OUTPUT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + IF reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CASE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + FOR reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + REPEAT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + WHILE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PROCEDURE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CALL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + FUNCTION reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + RETURN reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OPENFILE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + READFILE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + WRITEFILE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CLOSEFILE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + SEEK reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + TYPE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + PASS reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + IMPORT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CLASS reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ID reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NOT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + LEFT_PAREN reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DATE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + BOOLEAN reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + CHAR reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + STRING reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + REAL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + INTEGER reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NEW reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + $end reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + COMMA reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + UNTIL reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDWHILE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDTYPE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDCLASS reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ELSE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDIF reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + SEMICOLON reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + NEXT reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + ENDFUNCTION reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + THEN reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + DO reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + OTHERWISE reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + TO reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + COLON reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) + STEP reduce using rule 123 (expression -> ID LEFT_PAREN RIGHT_PAREN .) -state 113 +state 116 - (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 - 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 + (87) parameters -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_PAREN reduce using rule 87 (parameters -> expression .) + COMMA reduce using rule 87 (parameters -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 114 +state 117 (4) statement -> DECLARE ID COLON . ID - (9) statement -> DECLARE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (14) statement -> DECLARE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - ID shift and go to state 176 - ARRAY shift and go to state 177 + ID shift and go to state 183 + ARRAY shift and go to state 184 -state 115 +state 118 + + (6) statement -> DECLARE ids COLON . ID + + ID shift and go to state 185 + + +state 119 + + (8) ids -> ids COMMA . ID + + ID shift and go to state 186 + + +state 120 (5) statement -> PUBLIC ID COLON . ID - (10) statement -> PUBLIC ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> PUBLIC ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - ID shift and go to state 178 - ARRAY shift and go to state 179 + ID shift and go to state 187 + ARRAY shift and go to state 188 -state 116 +state 121 - (87) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (89) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (7) statement -> PUBLIC ids COLON . ID - LEFT_PAREN shift and go to state 180 + ID shift and go to state 189 -state 117 +state 122 - (88) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (90) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PUBLIC PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 181 + LEFT_PAREN shift and go to state 190 -state 118 +state 123 - (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 + (93) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> PUBLIC PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 182 + LEFT_PAREN shift and go to state 191 -state 119 +state 124 - (6) statement -> PRIVATE ID COLON . ID - (11) statement -> PRIVATE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (106) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> PUBLIC FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 183 - ARRAY shift and go to state 184 + LEFT_PAREN shift and go to state 192 -state 120 +state 125 - (91) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (93) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (10) statement -> PRIVATE ID COLON . ID + (16) statement -> PRIVATE ID COLON . ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - LEFT_PAREN shift and go to state 185 + ID shift and go to state 193 + ARRAY shift and go to state 194 -state 121 +state 126 - (92) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE - (94) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (11) statement -> PRIVATE ids COLON . ID - LEFT_PAREN shift and go to state 186 + ID shift and go to state 195 -state 122 +state 127 - (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 + (96) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> PRIVATE PROCEDURE ID . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - LEFT_PAREN shift and go to state 187 + LEFT_PAREN shift and go to state 196 -state 123 +state 128 + + (97) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> PRIVATE PROCEDURE NEW . LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE - (7) statement -> CONSTANT ID 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_PAREN shift and go to state 197 + + +state 129 + + (110) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION ID . LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> PRIVATE FUNCTION ID . LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + + LEFT_PAREN shift and go to state 198 + + +state 130 + + (12) statement -> CONSTANT ID EQUAL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -7078,49 +7187,49 @@ state 123 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 199 -state 124 +state 131 - (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 + (13) statement -> CONSTANT ID ASSIGN . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -7139,1751 +7248,1751 @@ state 124 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 200 -state 125 +state 132 - (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 + (20) statement -> expression ASSIGN expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + DELETE reduce using rule 20 (statement -> expression ASSIGN expression .) + DECLARE reduce using rule 20 (statement -> expression ASSIGN expression .) + PUBLIC reduce using rule 20 (statement -> expression ASSIGN expression .) + PRIVATE reduce using rule 20 (statement -> expression ASSIGN expression .) + CONSTANT reduce using rule 20 (statement -> expression ASSIGN expression .) + INPUT reduce using rule 20 (statement -> expression ASSIGN expression .) + OUTPUT reduce using rule 20 (statement -> expression ASSIGN expression .) + _OUTPUT reduce using rule 20 (statement -> expression ASSIGN expression .) + IF reduce using rule 20 (statement -> expression ASSIGN expression .) + CASE reduce using rule 20 (statement -> expression ASSIGN expression .) + FOR reduce using rule 20 (statement -> expression ASSIGN expression .) + REPEAT reduce using rule 20 (statement -> expression ASSIGN expression .) + WHILE reduce using rule 20 (statement -> expression ASSIGN expression .) + PROCEDURE reduce using rule 20 (statement -> expression ASSIGN expression .) + CALL reduce using rule 20 (statement -> expression ASSIGN expression .) + FUNCTION reduce using rule 20 (statement -> expression ASSIGN expression .) + RETURN reduce using rule 20 (statement -> expression ASSIGN expression .) + OPENFILE reduce using rule 20 (statement -> expression ASSIGN expression .) + READFILE reduce using rule 20 (statement -> expression ASSIGN expression .) + WRITEFILE reduce using rule 20 (statement -> expression ASSIGN expression .) + CLOSEFILE reduce using rule 20 (statement -> expression ASSIGN expression .) + SEEK reduce using rule 20 (statement -> expression ASSIGN expression .) + TYPE reduce using rule 20 (statement -> expression ASSIGN expression .) + PASS reduce using rule 20 (statement -> expression ASSIGN expression .) + IMPORT reduce using rule 20 (statement -> expression ASSIGN expression .) + CLASS reduce using rule 20 (statement -> expression ASSIGN expression .) + LEFT_SQUARE reduce using rule 20 (statement -> expression ASSIGN expression .) + ID reduce using rule 20 (statement -> expression ASSIGN expression .) + NOT reduce using rule 20 (statement -> expression ASSIGN expression .) + LEFT_PAREN reduce using rule 20 (statement -> expression ASSIGN expression .) + DATE reduce using rule 20 (statement -> expression ASSIGN expression .) + BOOLEAN reduce using rule 20 (statement -> expression ASSIGN expression .) + CHAR reduce using rule 20 (statement -> expression ASSIGN expression .) + STRING reduce using rule 20 (statement -> expression ASSIGN expression .) + REAL reduce using rule 20 (statement -> expression ASSIGN expression .) + INTEGER reduce using rule 20 (statement -> expression ASSIGN expression .) + NEW reduce using rule 20 (statement -> expression ASSIGN expression .) + $end reduce using rule 20 (statement -> expression ASSIGN expression .) + UNTIL reduce using rule 20 (statement -> expression ASSIGN expression .) + ENDWHILE reduce using rule 20 (statement -> expression ASSIGN expression .) + ENDTYPE reduce using rule 20 (statement -> expression ASSIGN expression .) + ENDCLASS reduce using rule 20 (statement -> expression ASSIGN expression .) + ELSE reduce using rule 20 (statement -> expression ASSIGN expression .) + ENDIF reduce using rule 20 (statement -> expression ASSIGN expression .) + ENDPROCEDURE reduce using rule 20 (statement -> expression ASSIGN expression .) + SEMICOLON reduce using rule 20 (statement -> expression ASSIGN expression .) + NEXT reduce using rule 20 (statement -> expression ASSIGN expression .) + ENDFUNCTION reduce using rule 20 (statement -> expression ASSIGN expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 20 (statement -> expression ASSIGN expression .) ] + ! PLUS [ reduce using rule 20 (statement -> expression ASSIGN expression .) ] + ! MOD [ reduce using rule 20 (statement -> expression ASSIGN expression .) ] + ! DIV [ reduce using rule 20 (statement -> expression ASSIGN expression .) ] + ! POINTER [ reduce using rule 20 (statement -> expression ASSIGN expression .) ] -state 126 +state 133 - (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 - 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 - - ! 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 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (50) expression -> expression OR expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 50 (expression -> expression OR expression .) + OR reduce using rule 50 (expression -> expression OR expression .) + AND reduce using rule 50 (expression -> expression OR expression .) + CONNECT reduce using rule 50 (expression -> expression OR expression .) + DOT reduce using rule 50 (expression -> expression OR expression .) + POINTER reduce using rule 50 (expression -> expression OR expression .) + DELETE reduce using rule 50 (expression -> expression OR expression .) + DECLARE reduce using rule 50 (expression -> expression OR expression .) + PUBLIC reduce using rule 50 (expression -> expression OR expression .) + PRIVATE reduce using rule 50 (expression -> expression OR expression .) + CONSTANT reduce using rule 50 (expression -> expression OR expression .) + INPUT reduce using rule 50 (expression -> expression OR expression .) + OUTPUT reduce using rule 50 (expression -> expression OR expression .) + _OUTPUT reduce using rule 50 (expression -> expression OR expression .) + IF reduce using rule 50 (expression -> expression OR expression .) + CASE reduce using rule 50 (expression -> expression OR expression .) + FOR reduce using rule 50 (expression -> expression OR expression .) + REPEAT reduce using rule 50 (expression -> expression OR expression .) + WHILE reduce using rule 50 (expression -> expression OR expression .) + PROCEDURE reduce using rule 50 (expression -> expression OR expression .) + CALL reduce using rule 50 (expression -> expression OR expression .) + FUNCTION reduce using rule 50 (expression -> expression OR expression .) + RETURN reduce using rule 50 (expression -> expression OR expression .) + OPENFILE reduce using rule 50 (expression -> expression OR expression .) + READFILE reduce using rule 50 (expression -> expression OR expression .) + WRITEFILE reduce using rule 50 (expression -> expression OR expression .) + CLOSEFILE reduce using rule 50 (expression -> expression OR expression .) + SEEK reduce using rule 50 (expression -> expression OR expression .) + TYPE reduce using rule 50 (expression -> expression OR expression .) + PASS reduce using rule 50 (expression -> expression OR expression .) + IMPORT reduce using rule 50 (expression -> expression OR expression .) + CLASS reduce using rule 50 (expression -> expression OR expression .) + LEFT_SQUARE reduce using rule 50 (expression -> expression OR expression .) + ID reduce using rule 50 (expression -> expression OR expression .) + NOT reduce using rule 50 (expression -> expression OR expression .) + LEFT_PAREN reduce using rule 50 (expression -> expression OR expression .) + DATE reduce using rule 50 (expression -> expression OR expression .) + BOOLEAN reduce using rule 50 (expression -> expression OR expression .) + CHAR reduce using rule 50 (expression -> expression OR expression .) + STRING reduce using rule 50 (expression -> expression OR expression .) + REAL reduce using rule 50 (expression -> expression OR expression .) + INTEGER reduce using rule 50 (expression -> expression OR expression .) + NEW reduce using rule 50 (expression -> expression OR expression .) + $end reduce using rule 50 (expression -> expression OR expression .) + RIGHT_SQUARE reduce using rule 50 (expression -> expression OR expression .) + COMMA reduce using rule 50 (expression -> expression OR expression .) + UNTIL reduce using rule 50 (expression -> expression OR expression .) + ENDWHILE reduce using rule 50 (expression -> expression OR expression .) + ENDTYPE reduce using rule 50 (expression -> expression OR expression .) + ENDCLASS reduce using rule 50 (expression -> expression OR expression .) + ELSE reduce using rule 50 (expression -> expression OR expression .) + ENDIF reduce using rule 50 (expression -> expression OR expression .) + ENDPROCEDURE reduce using rule 50 (expression -> expression OR expression .) + SEMICOLON reduce using rule 50 (expression -> expression OR expression .) + NEXT reduce using rule 50 (expression -> expression OR expression .) + ENDFUNCTION reduce using rule 50 (expression -> expression OR expression .) + THEN reduce using rule 50 (expression -> expression OR expression .) + DO reduce using rule 50 (expression -> expression OR expression .) + RIGHT_PAREN reduce using rule 50 (expression -> expression OR expression .) + OTHERWISE reduce using rule 50 (expression -> expression OR expression .) + TO reduce using rule 50 (expression -> expression OR expression .) + COLON reduce using rule 50 (expression -> expression OR expression .) + STEP reduce using rule 50 (expression -> expression OR expression .) + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! EQUAL [ reduce using rule 50 (expression -> expression OR expression .) ] + ! NOT_EQUAL [ reduce using rule 50 (expression -> expression OR expression .) ] + ! LESS [ reduce using rule 50 (expression -> expression OR expression .) ] + ! GREATER [ reduce using rule 50 (expression -> expression OR expression .) ] + ! LESS_EQUAL [ reduce using rule 50 (expression -> expression OR expression .) ] + ! GREATER_EQUAL [ reduce using rule 50 (expression -> expression OR expression .) ] + ! MOD [ reduce using rule 50 (expression -> expression OR expression .) ] + ! DIV [ reduce using rule 50 (expression -> expression OR expression .) ] + ! MUL [ reduce using rule 50 (expression -> expression OR expression .) ] + ! N_DIV [ reduce using rule 50 (expression -> expression OR expression .) ] + ! PLUS [ reduce using rule 50 (expression -> expression OR expression .) ] + ! MINUS [ reduce using rule 50 (expression -> expression OR expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 127 +state 134 - (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 - 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 - - ! 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 ] + (51) expression -> expression AND expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 51 (expression -> expression AND expression .) + AND reduce using rule 51 (expression -> expression AND expression .) + CONNECT reduce using rule 51 (expression -> expression AND expression .) + DOT reduce using rule 51 (expression -> expression AND expression .) + POINTER reduce using rule 51 (expression -> expression AND expression .) + DELETE reduce using rule 51 (expression -> expression AND expression .) + DECLARE reduce using rule 51 (expression -> expression AND expression .) + PUBLIC reduce using rule 51 (expression -> expression AND expression .) + PRIVATE reduce using rule 51 (expression -> expression AND expression .) + CONSTANT reduce using rule 51 (expression -> expression AND expression .) + INPUT reduce using rule 51 (expression -> expression AND expression .) + OUTPUT reduce using rule 51 (expression -> expression AND expression .) + _OUTPUT reduce using rule 51 (expression -> expression AND expression .) + IF reduce using rule 51 (expression -> expression AND expression .) + CASE reduce using rule 51 (expression -> expression AND expression .) + FOR reduce using rule 51 (expression -> expression AND expression .) + REPEAT reduce using rule 51 (expression -> expression AND expression .) + WHILE reduce using rule 51 (expression -> expression AND expression .) + PROCEDURE reduce using rule 51 (expression -> expression AND expression .) + CALL reduce using rule 51 (expression -> expression AND expression .) + FUNCTION reduce using rule 51 (expression -> expression AND expression .) + RETURN reduce using rule 51 (expression -> expression AND expression .) + OPENFILE reduce using rule 51 (expression -> expression AND expression .) + READFILE reduce using rule 51 (expression -> expression AND expression .) + WRITEFILE reduce using rule 51 (expression -> expression AND expression .) + CLOSEFILE reduce using rule 51 (expression -> expression AND expression .) + SEEK reduce using rule 51 (expression -> expression AND expression .) + TYPE reduce using rule 51 (expression -> expression AND expression .) + PASS reduce using rule 51 (expression -> expression AND expression .) + IMPORT reduce using rule 51 (expression -> expression AND expression .) + CLASS reduce using rule 51 (expression -> expression AND expression .) + LEFT_SQUARE reduce using rule 51 (expression -> expression AND expression .) + ID reduce using rule 51 (expression -> expression AND expression .) + NOT reduce using rule 51 (expression -> expression AND expression .) + LEFT_PAREN reduce using rule 51 (expression -> expression AND expression .) + DATE reduce using rule 51 (expression -> expression AND expression .) + BOOLEAN reduce using rule 51 (expression -> expression AND expression .) + CHAR reduce using rule 51 (expression -> expression AND expression .) + STRING reduce using rule 51 (expression -> expression AND expression .) + REAL reduce using rule 51 (expression -> expression AND expression .) + INTEGER reduce using rule 51 (expression -> expression AND expression .) + NEW reduce using rule 51 (expression -> expression AND expression .) + $end reduce using rule 51 (expression -> expression AND expression .) + RIGHT_SQUARE reduce using rule 51 (expression -> expression AND expression .) + COMMA reduce using rule 51 (expression -> expression AND expression .) + UNTIL reduce using rule 51 (expression -> expression AND expression .) + ENDWHILE reduce using rule 51 (expression -> expression AND expression .) + ENDTYPE reduce using rule 51 (expression -> expression AND expression .) + ENDCLASS reduce using rule 51 (expression -> expression AND expression .) + ELSE reduce using rule 51 (expression -> expression AND expression .) + ENDIF reduce using rule 51 (expression -> expression AND expression .) + ENDPROCEDURE reduce using rule 51 (expression -> expression AND expression .) + SEMICOLON reduce using rule 51 (expression -> expression AND expression .) + NEXT reduce using rule 51 (expression -> expression AND expression .) + ENDFUNCTION reduce using rule 51 (expression -> expression AND expression .) + THEN reduce using rule 51 (expression -> expression AND expression .) + DO reduce using rule 51 (expression -> expression AND expression .) + RIGHT_PAREN reduce using rule 51 (expression -> expression AND expression .) + OTHERWISE reduce using rule 51 (expression -> expression AND expression .) + TO reduce using rule 51 (expression -> expression AND expression .) + COLON reduce using rule 51 (expression -> expression AND expression .) + STEP reduce using rule 51 (expression -> expression AND expression .) + OR shift and go to state 62 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! OR [ reduce using rule 51 (expression -> expression AND expression .) ] + ! EQUAL [ reduce using rule 51 (expression -> expression AND expression .) ] + ! NOT_EQUAL [ reduce using rule 51 (expression -> expression AND expression .) ] + ! LESS [ reduce using rule 51 (expression -> expression AND expression .) ] + ! GREATER [ reduce using rule 51 (expression -> expression AND expression .) ] + ! LESS_EQUAL [ reduce using rule 51 (expression -> expression AND expression .) ] + ! GREATER_EQUAL [ reduce using rule 51 (expression -> expression AND expression .) ] + ! MOD [ reduce using rule 51 (expression -> expression AND expression .) ] + ! DIV [ reduce using rule 51 (expression -> expression AND expression .) ] + ! MUL [ reduce using rule 51 (expression -> expression AND expression .) ] + ! N_DIV [ reduce using rule 51 (expression -> expression AND expression .) ] + ! PLUS [ reduce using rule 51 (expression -> expression AND expression .) ] + ! MINUS [ reduce using rule 51 (expression -> expression AND expression .) ] + ! AND [ shift and go to state 63 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 128 +state 135 - (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 - N_DIV shift and go to state 70 - PLUS shift and go to state 71 - MINUS shift and go to state 72 - - ! 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 ] - ! 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 ] - ! CONNECT [ shift and go to state 73 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (53) expression -> expression EQUAL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 53 (expression -> expression EQUAL expression .) + OR reduce using rule 53 (expression -> expression EQUAL expression .) + AND reduce using rule 53 (expression -> expression EQUAL expression .) + EQUAL reduce using rule 53 (expression -> expression EQUAL expression .) + NOT_EQUAL reduce using rule 53 (expression -> expression EQUAL expression .) + LESS reduce using rule 53 (expression -> expression EQUAL expression .) + GREATER reduce using rule 53 (expression -> expression EQUAL expression .) + LESS_EQUAL reduce using rule 53 (expression -> expression EQUAL expression .) + GREATER_EQUAL reduce using rule 53 (expression -> expression EQUAL expression .) + CONNECT reduce using rule 53 (expression -> expression EQUAL expression .) + DOT reduce using rule 53 (expression -> expression EQUAL expression .) + POINTER reduce using rule 53 (expression -> expression EQUAL expression .) + DELETE reduce using rule 53 (expression -> expression EQUAL expression .) + DECLARE reduce using rule 53 (expression -> expression EQUAL expression .) + PUBLIC reduce using rule 53 (expression -> expression EQUAL expression .) + PRIVATE reduce using rule 53 (expression -> expression EQUAL expression .) + CONSTANT reduce using rule 53 (expression -> expression EQUAL expression .) + INPUT reduce using rule 53 (expression -> expression EQUAL expression .) + OUTPUT reduce using rule 53 (expression -> expression EQUAL expression .) + _OUTPUT reduce using rule 53 (expression -> expression EQUAL expression .) + IF reduce using rule 53 (expression -> expression EQUAL expression .) + CASE reduce using rule 53 (expression -> expression EQUAL expression .) + FOR reduce using rule 53 (expression -> expression EQUAL expression .) + REPEAT reduce using rule 53 (expression -> expression EQUAL expression .) + WHILE reduce using rule 53 (expression -> expression EQUAL expression .) + PROCEDURE reduce using rule 53 (expression -> expression EQUAL expression .) + CALL reduce using rule 53 (expression -> expression EQUAL expression .) + FUNCTION reduce using rule 53 (expression -> expression EQUAL expression .) + RETURN reduce using rule 53 (expression -> expression EQUAL expression .) + OPENFILE reduce using rule 53 (expression -> expression EQUAL expression .) + READFILE reduce using rule 53 (expression -> expression EQUAL expression .) + WRITEFILE reduce using rule 53 (expression -> expression EQUAL expression .) + CLOSEFILE reduce using rule 53 (expression -> expression EQUAL expression .) + SEEK reduce using rule 53 (expression -> expression EQUAL expression .) + TYPE reduce using rule 53 (expression -> expression EQUAL expression .) + PASS reduce using rule 53 (expression -> expression EQUAL expression .) + IMPORT reduce using rule 53 (expression -> expression EQUAL expression .) + CLASS reduce using rule 53 (expression -> expression EQUAL expression .) + LEFT_SQUARE reduce using rule 53 (expression -> expression EQUAL expression .) + ID reduce using rule 53 (expression -> expression EQUAL expression .) + NOT reduce using rule 53 (expression -> expression EQUAL expression .) + LEFT_PAREN reduce using rule 53 (expression -> expression EQUAL expression .) + DATE reduce using rule 53 (expression -> expression EQUAL expression .) + BOOLEAN reduce using rule 53 (expression -> expression EQUAL expression .) + CHAR reduce using rule 53 (expression -> expression EQUAL expression .) + STRING reduce using rule 53 (expression -> expression EQUAL expression .) + REAL reduce using rule 53 (expression -> expression EQUAL expression .) + INTEGER reduce using rule 53 (expression -> expression EQUAL expression .) + NEW reduce using rule 53 (expression -> expression EQUAL expression .) + $end reduce using rule 53 (expression -> expression EQUAL expression .) + RIGHT_SQUARE reduce using rule 53 (expression -> expression EQUAL expression .) + COMMA reduce using rule 53 (expression -> expression EQUAL expression .) + UNTIL reduce using rule 53 (expression -> expression EQUAL expression .) + ENDWHILE reduce using rule 53 (expression -> expression EQUAL expression .) + ENDTYPE reduce using rule 53 (expression -> expression EQUAL expression .) + ENDCLASS reduce using rule 53 (expression -> expression EQUAL expression .) + ELSE reduce using rule 53 (expression -> expression EQUAL expression .) + ENDIF reduce using rule 53 (expression -> expression EQUAL expression .) + ENDPROCEDURE reduce using rule 53 (expression -> expression EQUAL expression .) + SEMICOLON reduce using rule 53 (expression -> expression EQUAL expression .) + NEXT reduce using rule 53 (expression -> expression EQUAL expression .) + ENDFUNCTION reduce using rule 53 (expression -> expression EQUAL expression .) + THEN reduce using rule 53 (expression -> expression EQUAL expression .) + DO reduce using rule 53 (expression -> expression EQUAL expression .) + RIGHT_PAREN reduce using rule 53 (expression -> expression EQUAL expression .) + OTHERWISE reduce using rule 53 (expression -> expression EQUAL expression .) + TO reduce using rule 53 (expression -> expression EQUAL expression .) + COLON reduce using rule 53 (expression -> expression EQUAL expression .) + STEP reduce using rule 53 (expression -> expression EQUAL expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! MOD [ reduce using rule 53 (expression -> expression EQUAL expression .) ] + ! DIV [ reduce using rule 53 (expression -> expression EQUAL expression .) ] + ! MUL [ reduce using rule 53 (expression -> expression EQUAL expression .) ] + ! N_DIV [ reduce using rule 53 (expression -> expression EQUAL expression .) ] + ! PLUS [ reduce using rule 53 (expression -> expression EQUAL expression .) ] + ! MINUS [ reduce using rule 53 (expression -> expression EQUAL expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 129 +state 136 - (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 - N_DIV shift and go to state 70 - PLUS shift and go to state 71 - MINUS shift and go to state 72 - - ! 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 ] - ! 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 ] - ! CONNECT [ shift and go to state 73 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (54) expression -> expression NOT_EQUAL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + OR reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + AND reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + EQUAL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + NOT_EQUAL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + LESS reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + GREATER reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + LESS_EQUAL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + GREATER_EQUAL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CONNECT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + DOT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + POINTER reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + DELETE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + DECLARE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + PUBLIC reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + PRIVATE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CONSTANT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + INPUT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + OUTPUT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + _OUTPUT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + IF reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CASE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + FOR reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + REPEAT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + WHILE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + PROCEDURE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CALL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + FUNCTION reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + RETURN reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + OPENFILE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + READFILE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + WRITEFILE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CLOSEFILE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + SEEK reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + TYPE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + PASS reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + IMPORT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CLASS reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + LEFT_SQUARE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ID reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + NOT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + LEFT_PAREN reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + DATE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + BOOLEAN reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + CHAR reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + STRING reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + REAL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + INTEGER reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + NEW reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + $end reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + RIGHT_SQUARE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + COMMA reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + UNTIL reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ENDWHILE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ENDTYPE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ENDCLASS reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ELSE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ENDIF reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ENDPROCEDURE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + SEMICOLON reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + NEXT reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + ENDFUNCTION reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + THEN reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + DO reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + RIGHT_PAREN reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + OTHERWISE reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + TO reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + COLON reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + STEP reduce using rule 54 (expression -> expression NOT_EQUAL expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! MOD [ reduce using rule 54 (expression -> expression NOT_EQUAL expression .) ] + ! DIV [ reduce using rule 54 (expression -> expression NOT_EQUAL expression .) ] + ! MUL [ reduce using rule 54 (expression -> expression NOT_EQUAL expression .) ] + ! N_DIV [ reduce using rule 54 (expression -> expression NOT_EQUAL expression .) ] + ! PLUS [ reduce using rule 54 (expression -> expression NOT_EQUAL expression .) ] + ! MINUS [ reduce using rule 54 (expression -> expression NOT_EQUAL expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 130 +state 137 - (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 - N_DIV shift and go to state 70 - PLUS shift and go to state 71 - MINUS shift and go to state 72 - - ! 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 ] - ! 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 ] - ! CONNECT [ shift and go to state 73 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (55) expression -> expression LESS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 55 (expression -> expression LESS expression .) + OR reduce using rule 55 (expression -> expression LESS expression .) + AND reduce using rule 55 (expression -> expression LESS expression .) + EQUAL reduce using rule 55 (expression -> expression LESS expression .) + NOT_EQUAL reduce using rule 55 (expression -> expression LESS expression .) + LESS reduce using rule 55 (expression -> expression LESS expression .) + GREATER reduce using rule 55 (expression -> expression LESS expression .) + LESS_EQUAL reduce using rule 55 (expression -> expression LESS expression .) + GREATER_EQUAL reduce using rule 55 (expression -> expression LESS expression .) + CONNECT reduce using rule 55 (expression -> expression LESS expression .) + DOT reduce using rule 55 (expression -> expression LESS expression .) + POINTER reduce using rule 55 (expression -> expression LESS expression .) + DELETE reduce using rule 55 (expression -> expression LESS expression .) + DECLARE reduce using rule 55 (expression -> expression LESS expression .) + PUBLIC reduce using rule 55 (expression -> expression LESS expression .) + PRIVATE reduce using rule 55 (expression -> expression LESS expression .) + CONSTANT reduce using rule 55 (expression -> expression LESS expression .) + INPUT reduce using rule 55 (expression -> expression LESS expression .) + OUTPUT reduce using rule 55 (expression -> expression LESS expression .) + _OUTPUT reduce using rule 55 (expression -> expression LESS expression .) + IF reduce using rule 55 (expression -> expression LESS expression .) + CASE reduce using rule 55 (expression -> expression LESS expression .) + FOR reduce using rule 55 (expression -> expression LESS expression .) + REPEAT reduce using rule 55 (expression -> expression LESS expression .) + WHILE reduce using rule 55 (expression -> expression LESS expression .) + PROCEDURE reduce using rule 55 (expression -> expression LESS expression .) + CALL reduce using rule 55 (expression -> expression LESS expression .) + FUNCTION reduce using rule 55 (expression -> expression LESS expression .) + RETURN reduce using rule 55 (expression -> expression LESS expression .) + OPENFILE reduce using rule 55 (expression -> expression LESS expression .) + READFILE reduce using rule 55 (expression -> expression LESS expression .) + WRITEFILE reduce using rule 55 (expression -> expression LESS expression .) + CLOSEFILE reduce using rule 55 (expression -> expression LESS expression .) + SEEK reduce using rule 55 (expression -> expression LESS expression .) + TYPE reduce using rule 55 (expression -> expression LESS expression .) + PASS reduce using rule 55 (expression -> expression LESS expression .) + IMPORT reduce using rule 55 (expression -> expression LESS expression .) + CLASS reduce using rule 55 (expression -> expression LESS expression .) + LEFT_SQUARE reduce using rule 55 (expression -> expression LESS expression .) + ID reduce using rule 55 (expression -> expression LESS expression .) + NOT reduce using rule 55 (expression -> expression LESS expression .) + LEFT_PAREN reduce using rule 55 (expression -> expression LESS expression .) + DATE reduce using rule 55 (expression -> expression LESS expression .) + BOOLEAN reduce using rule 55 (expression -> expression LESS expression .) + CHAR reduce using rule 55 (expression -> expression LESS expression .) + STRING reduce using rule 55 (expression -> expression LESS expression .) + REAL reduce using rule 55 (expression -> expression LESS expression .) + INTEGER reduce using rule 55 (expression -> expression LESS expression .) + NEW reduce using rule 55 (expression -> expression LESS expression .) + $end reduce using rule 55 (expression -> expression LESS expression .) + RIGHT_SQUARE reduce using rule 55 (expression -> expression LESS expression .) + COMMA reduce using rule 55 (expression -> expression LESS expression .) + UNTIL reduce using rule 55 (expression -> expression LESS expression .) + ENDWHILE reduce using rule 55 (expression -> expression LESS expression .) + ENDTYPE reduce using rule 55 (expression -> expression LESS expression .) + ENDCLASS reduce using rule 55 (expression -> expression LESS expression .) + ELSE reduce using rule 55 (expression -> expression LESS expression .) + ENDIF reduce using rule 55 (expression -> expression LESS expression .) + ENDPROCEDURE reduce using rule 55 (expression -> expression LESS expression .) + SEMICOLON reduce using rule 55 (expression -> expression LESS expression .) + NEXT reduce using rule 55 (expression -> expression LESS expression .) + ENDFUNCTION reduce using rule 55 (expression -> expression LESS expression .) + THEN reduce using rule 55 (expression -> expression LESS expression .) + DO reduce using rule 55 (expression -> expression LESS expression .) + RIGHT_PAREN reduce using rule 55 (expression -> expression LESS expression .) + OTHERWISE reduce using rule 55 (expression -> expression LESS expression .) + TO reduce using rule 55 (expression -> expression LESS expression .) + COLON reduce using rule 55 (expression -> expression LESS expression .) + STEP reduce using rule 55 (expression -> expression LESS expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! MOD [ reduce using rule 55 (expression -> expression LESS expression .) ] + ! DIV [ reduce using rule 55 (expression -> expression LESS expression .) ] + ! MUL [ reduce using rule 55 (expression -> expression LESS expression .) ] + ! N_DIV [ reduce using rule 55 (expression -> expression LESS expression .) ] + ! PLUS [ reduce using rule 55 (expression -> expression LESS expression .) ] + ! MINUS [ reduce using rule 55 (expression -> expression LESS expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 131 +state 138 - (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 - N_DIV shift and go to state 70 - PLUS shift and go to state 71 - MINUS shift and go to state 72 - - ! 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 ] - ! 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 ] - ! CONNECT [ shift and go to state 73 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (56) expression -> expression GREATER expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 56 (expression -> expression GREATER expression .) + OR reduce using rule 56 (expression -> expression GREATER expression .) + AND reduce using rule 56 (expression -> expression GREATER expression .) + EQUAL reduce using rule 56 (expression -> expression GREATER expression .) + NOT_EQUAL reduce using rule 56 (expression -> expression GREATER expression .) + LESS reduce using rule 56 (expression -> expression GREATER expression .) + GREATER reduce using rule 56 (expression -> expression GREATER expression .) + LESS_EQUAL reduce using rule 56 (expression -> expression GREATER expression .) + GREATER_EQUAL reduce using rule 56 (expression -> expression GREATER expression .) + CONNECT reduce using rule 56 (expression -> expression GREATER expression .) + DOT reduce using rule 56 (expression -> expression GREATER expression .) + POINTER reduce using rule 56 (expression -> expression GREATER expression .) + DELETE reduce using rule 56 (expression -> expression GREATER expression .) + DECLARE reduce using rule 56 (expression -> expression GREATER expression .) + PUBLIC reduce using rule 56 (expression -> expression GREATER expression .) + PRIVATE reduce using rule 56 (expression -> expression GREATER expression .) + CONSTANT reduce using rule 56 (expression -> expression GREATER expression .) + INPUT reduce using rule 56 (expression -> expression GREATER expression .) + OUTPUT reduce using rule 56 (expression -> expression GREATER expression .) + _OUTPUT reduce using rule 56 (expression -> expression GREATER expression .) + IF reduce using rule 56 (expression -> expression GREATER expression .) + CASE reduce using rule 56 (expression -> expression GREATER expression .) + FOR reduce using rule 56 (expression -> expression GREATER expression .) + REPEAT reduce using rule 56 (expression -> expression GREATER expression .) + WHILE reduce using rule 56 (expression -> expression GREATER expression .) + PROCEDURE reduce using rule 56 (expression -> expression GREATER expression .) + CALL reduce using rule 56 (expression -> expression GREATER expression .) + FUNCTION reduce using rule 56 (expression -> expression GREATER expression .) + RETURN reduce using rule 56 (expression -> expression GREATER expression .) + OPENFILE reduce using rule 56 (expression -> expression GREATER expression .) + READFILE reduce using rule 56 (expression -> expression GREATER expression .) + WRITEFILE reduce using rule 56 (expression -> expression GREATER expression .) + CLOSEFILE reduce using rule 56 (expression -> expression GREATER expression .) + SEEK reduce using rule 56 (expression -> expression GREATER expression .) + TYPE reduce using rule 56 (expression -> expression GREATER expression .) + PASS reduce using rule 56 (expression -> expression GREATER expression .) + IMPORT reduce using rule 56 (expression -> expression GREATER expression .) + CLASS reduce using rule 56 (expression -> expression GREATER expression .) + LEFT_SQUARE reduce using rule 56 (expression -> expression GREATER expression .) + ID reduce using rule 56 (expression -> expression GREATER expression .) + NOT reduce using rule 56 (expression -> expression GREATER expression .) + LEFT_PAREN reduce using rule 56 (expression -> expression GREATER expression .) + DATE reduce using rule 56 (expression -> expression GREATER expression .) + BOOLEAN reduce using rule 56 (expression -> expression GREATER expression .) + CHAR reduce using rule 56 (expression -> expression GREATER expression .) + STRING reduce using rule 56 (expression -> expression GREATER expression .) + REAL reduce using rule 56 (expression -> expression GREATER expression .) + INTEGER reduce using rule 56 (expression -> expression GREATER expression .) + NEW reduce using rule 56 (expression -> expression GREATER expression .) + $end reduce using rule 56 (expression -> expression GREATER expression .) + RIGHT_SQUARE reduce using rule 56 (expression -> expression GREATER expression .) + COMMA reduce using rule 56 (expression -> expression GREATER expression .) + UNTIL reduce using rule 56 (expression -> expression GREATER expression .) + ENDWHILE reduce using rule 56 (expression -> expression GREATER expression .) + ENDTYPE reduce using rule 56 (expression -> expression GREATER expression .) + ENDCLASS reduce using rule 56 (expression -> expression GREATER expression .) + ELSE reduce using rule 56 (expression -> expression GREATER expression .) + ENDIF reduce using rule 56 (expression -> expression GREATER expression .) + ENDPROCEDURE reduce using rule 56 (expression -> expression GREATER expression .) + SEMICOLON reduce using rule 56 (expression -> expression GREATER expression .) + NEXT reduce using rule 56 (expression -> expression GREATER expression .) + ENDFUNCTION reduce using rule 56 (expression -> expression GREATER expression .) + THEN reduce using rule 56 (expression -> expression GREATER expression .) + DO reduce using rule 56 (expression -> expression GREATER expression .) + RIGHT_PAREN reduce using rule 56 (expression -> expression GREATER expression .) + OTHERWISE reduce using rule 56 (expression -> expression GREATER expression .) + TO reduce using rule 56 (expression -> expression GREATER expression .) + COLON reduce using rule 56 (expression -> expression GREATER expression .) + STEP reduce using rule 56 (expression -> expression GREATER expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! MOD [ reduce using rule 56 (expression -> expression GREATER expression .) ] + ! DIV [ reduce using rule 56 (expression -> expression GREATER expression .) ] + ! MUL [ reduce using rule 56 (expression -> expression GREATER expression .) ] + ! N_DIV [ reduce using rule 56 (expression -> expression GREATER expression .) ] + ! PLUS [ reduce using rule 56 (expression -> expression GREATER expression .) ] + ! MINUS [ reduce using rule 56 (expression -> expression GREATER expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 132 +state 139 - (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 - N_DIV shift and go to state 70 - PLUS shift and go to state 71 - MINUS shift and go to state 72 - - ! 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 ] - ! 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 ] - ! CONNECT [ shift and go to state 73 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (57) expression -> expression LESS_EQUAL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + OR reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + AND reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + EQUAL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + NOT_EQUAL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + LESS reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + GREATER reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + LESS_EQUAL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + GREATER_EQUAL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CONNECT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + DOT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + POINTER reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + DELETE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + DECLARE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + PUBLIC reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + PRIVATE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CONSTANT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + INPUT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + OUTPUT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + _OUTPUT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + IF reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CASE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + FOR reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + REPEAT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + WHILE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + PROCEDURE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CALL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + FUNCTION reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + RETURN reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + OPENFILE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + READFILE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + WRITEFILE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CLOSEFILE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + SEEK reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + TYPE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + PASS reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + IMPORT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CLASS reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + LEFT_SQUARE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ID reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + NOT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + LEFT_PAREN reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + DATE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + BOOLEAN reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + CHAR reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + STRING reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + REAL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + INTEGER reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + NEW reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + $end reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + RIGHT_SQUARE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + COMMA reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + UNTIL reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ENDWHILE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ENDTYPE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ENDCLASS reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ELSE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ENDIF reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ENDPROCEDURE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + SEMICOLON reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + NEXT reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + ENDFUNCTION reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + THEN reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + DO reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + RIGHT_PAREN reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + OTHERWISE reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + TO reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + COLON reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + STEP reduce using rule 57 (expression -> expression LESS_EQUAL expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! MOD [ reduce using rule 57 (expression -> expression LESS_EQUAL expression .) ] + ! DIV [ reduce using rule 57 (expression -> expression LESS_EQUAL expression .) ] + ! MUL [ reduce using rule 57 (expression -> expression LESS_EQUAL expression .) ] + ! N_DIV [ reduce using rule 57 (expression -> expression LESS_EQUAL expression .) ] + ! PLUS [ reduce using rule 57 (expression -> expression LESS_EQUAL expression .) ] + ! MINUS [ reduce using rule 57 (expression -> expression LESS_EQUAL expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 133 +state 140 - (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 - N_DIV shift and go to state 70 - PLUS shift and go to state 71 - MINUS shift and go to state 72 - - ! 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 ] - ! 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 ] - ! CONNECT [ shift and go to state 73 ] - ! DOT [ shift and go to state 74 ] - ! POINTER [ shift and go to state 75 ] + (58) expression -> expression GREATER_EQUAL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + OR reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + AND reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + EQUAL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + NOT_EQUAL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + LESS reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + GREATER reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + LESS_EQUAL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + GREATER_EQUAL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CONNECT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + DOT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + POINTER reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + DELETE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + DECLARE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + PUBLIC reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + PRIVATE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CONSTANT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + INPUT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + OUTPUT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + _OUTPUT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + IF reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CASE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + FOR reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + REPEAT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + WHILE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + PROCEDURE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CALL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + FUNCTION reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + RETURN reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + OPENFILE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + READFILE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + WRITEFILE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CLOSEFILE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + SEEK reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + TYPE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + PASS reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + IMPORT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CLASS reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + LEFT_SQUARE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ID reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + NOT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + LEFT_PAREN reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + DATE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + BOOLEAN reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + CHAR reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + STRING reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + REAL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + INTEGER reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + NEW reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + $end reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + RIGHT_SQUARE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + COMMA reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + UNTIL reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ENDWHILE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ENDTYPE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ENDCLASS reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ELSE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ENDIF reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ENDPROCEDURE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + SEMICOLON reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + NEXT reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + ENDFUNCTION reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + THEN reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + DO reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + RIGHT_PAREN reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + OTHERWISE reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + TO reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + COLON reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + STEP reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + + ! MOD [ reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) ] + ! DIV [ reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) ] + ! MUL [ reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) ] + ! N_DIV [ reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) ] + ! PLUS [ reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) ] + ! MINUS [ reduce using rule 58 (expression -> expression GREATER_EQUAL expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 134 +state 141 - (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 ] - ! 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 ] + (59) expression -> expression MOD expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 59 (expression -> expression MOD expression .) + OR reduce using rule 59 (expression -> expression MOD expression .) + AND reduce using rule 59 (expression -> expression MOD expression .) + EQUAL reduce using rule 59 (expression -> expression MOD expression .) + NOT_EQUAL reduce using rule 59 (expression -> expression MOD expression .) + LESS reduce using rule 59 (expression -> expression MOD expression .) + GREATER reduce using rule 59 (expression -> expression MOD expression .) + LESS_EQUAL reduce using rule 59 (expression -> expression MOD expression .) + GREATER_EQUAL reduce using rule 59 (expression -> expression MOD expression .) + MOD reduce using rule 59 (expression -> expression MOD expression .) + DIV reduce using rule 59 (expression -> expression MOD expression .) + MUL reduce using rule 59 (expression -> expression MOD expression .) + N_DIV reduce using rule 59 (expression -> expression MOD expression .) + PLUS reduce using rule 59 (expression -> expression MOD expression .) + MINUS reduce using rule 59 (expression -> expression MOD expression .) + CONNECT reduce using rule 59 (expression -> expression MOD expression .) + DOT reduce using rule 59 (expression -> expression MOD expression .) + POINTER reduce using rule 59 (expression -> expression MOD expression .) + DELETE reduce using rule 59 (expression -> expression MOD expression .) + DECLARE reduce using rule 59 (expression -> expression MOD expression .) + PUBLIC reduce using rule 59 (expression -> expression MOD expression .) + PRIVATE reduce using rule 59 (expression -> expression MOD expression .) + CONSTANT reduce using rule 59 (expression -> expression MOD expression .) + INPUT reduce using rule 59 (expression -> expression MOD expression .) + OUTPUT reduce using rule 59 (expression -> expression MOD expression .) + _OUTPUT reduce using rule 59 (expression -> expression MOD expression .) + IF reduce using rule 59 (expression -> expression MOD expression .) + CASE reduce using rule 59 (expression -> expression MOD expression .) + FOR reduce using rule 59 (expression -> expression MOD expression .) + REPEAT reduce using rule 59 (expression -> expression MOD expression .) + WHILE reduce using rule 59 (expression -> expression MOD expression .) + PROCEDURE reduce using rule 59 (expression -> expression MOD expression .) + CALL reduce using rule 59 (expression -> expression MOD expression .) + FUNCTION reduce using rule 59 (expression -> expression MOD expression .) + RETURN reduce using rule 59 (expression -> expression MOD expression .) + OPENFILE reduce using rule 59 (expression -> expression MOD expression .) + READFILE reduce using rule 59 (expression -> expression MOD expression .) + WRITEFILE reduce using rule 59 (expression -> expression MOD expression .) + CLOSEFILE reduce using rule 59 (expression -> expression MOD expression .) + SEEK reduce using rule 59 (expression -> expression MOD expression .) + TYPE reduce using rule 59 (expression -> expression MOD expression .) + PASS reduce using rule 59 (expression -> expression MOD expression .) + IMPORT reduce using rule 59 (expression -> expression MOD expression .) + CLASS reduce using rule 59 (expression -> expression MOD expression .) + LEFT_SQUARE reduce using rule 59 (expression -> expression MOD expression .) + ID reduce using rule 59 (expression -> expression MOD expression .) + NOT reduce using rule 59 (expression -> expression MOD expression .) + LEFT_PAREN reduce using rule 59 (expression -> expression MOD expression .) + DATE reduce using rule 59 (expression -> expression MOD expression .) + BOOLEAN reduce using rule 59 (expression -> expression MOD expression .) + CHAR reduce using rule 59 (expression -> expression MOD expression .) + STRING reduce using rule 59 (expression -> expression MOD expression .) + REAL reduce using rule 59 (expression -> expression MOD expression .) + INTEGER reduce using rule 59 (expression -> expression MOD expression .) + NEW reduce using rule 59 (expression -> expression MOD expression .) + $end reduce using rule 59 (expression -> expression MOD expression .) + RIGHT_SQUARE reduce using rule 59 (expression -> expression MOD expression .) + COMMA reduce using rule 59 (expression -> expression MOD expression .) + UNTIL reduce using rule 59 (expression -> expression MOD expression .) + ENDWHILE reduce using rule 59 (expression -> expression MOD expression .) + ENDTYPE reduce using rule 59 (expression -> expression MOD expression .) + ENDCLASS reduce using rule 59 (expression -> expression MOD expression .) + ELSE reduce using rule 59 (expression -> expression MOD expression .) + ENDIF reduce using rule 59 (expression -> expression MOD expression .) + ENDPROCEDURE reduce using rule 59 (expression -> expression MOD expression .) + SEMICOLON reduce using rule 59 (expression -> expression MOD expression .) + NEXT reduce using rule 59 (expression -> expression MOD expression .) + ENDFUNCTION reduce using rule 59 (expression -> expression MOD expression .) + THEN reduce using rule 59 (expression -> expression MOD expression .) + DO reduce using rule 59 (expression -> expression MOD expression .) + RIGHT_PAREN reduce using rule 59 (expression -> expression MOD expression .) + OTHERWISE reduce using rule 59 (expression -> expression MOD expression .) + TO reduce using rule 59 (expression -> expression MOD expression .) + COLON reduce using rule 59 (expression -> expression MOD expression .) + STEP reduce using rule 59 (expression -> expression MOD expression .) + + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 135 +state 142 - (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 ] - ! 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 ] + (60) expression -> expression DIV expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 60 (expression -> expression DIV expression .) + OR reduce using rule 60 (expression -> expression DIV expression .) + AND reduce using rule 60 (expression -> expression DIV expression .) + EQUAL reduce using rule 60 (expression -> expression DIV expression .) + NOT_EQUAL reduce using rule 60 (expression -> expression DIV expression .) + LESS reduce using rule 60 (expression -> expression DIV expression .) + GREATER reduce using rule 60 (expression -> expression DIV expression .) + LESS_EQUAL reduce using rule 60 (expression -> expression DIV expression .) + GREATER_EQUAL reduce using rule 60 (expression -> expression DIV expression .) + MOD reduce using rule 60 (expression -> expression DIV expression .) + DIV reduce using rule 60 (expression -> expression DIV expression .) + MUL reduce using rule 60 (expression -> expression DIV expression .) + N_DIV reduce using rule 60 (expression -> expression DIV expression .) + PLUS reduce using rule 60 (expression -> expression DIV expression .) + MINUS reduce using rule 60 (expression -> expression DIV expression .) + CONNECT reduce using rule 60 (expression -> expression DIV expression .) + DOT reduce using rule 60 (expression -> expression DIV expression .) + POINTER reduce using rule 60 (expression -> expression DIV expression .) + DELETE reduce using rule 60 (expression -> expression DIV expression .) + DECLARE reduce using rule 60 (expression -> expression DIV expression .) + PUBLIC reduce using rule 60 (expression -> expression DIV expression .) + PRIVATE reduce using rule 60 (expression -> expression DIV expression .) + CONSTANT reduce using rule 60 (expression -> expression DIV expression .) + INPUT reduce using rule 60 (expression -> expression DIV expression .) + OUTPUT reduce using rule 60 (expression -> expression DIV expression .) + _OUTPUT reduce using rule 60 (expression -> expression DIV expression .) + IF reduce using rule 60 (expression -> expression DIV expression .) + CASE reduce using rule 60 (expression -> expression DIV expression .) + FOR reduce using rule 60 (expression -> expression DIV expression .) + REPEAT reduce using rule 60 (expression -> expression DIV expression .) + WHILE reduce using rule 60 (expression -> expression DIV expression .) + PROCEDURE reduce using rule 60 (expression -> expression DIV expression .) + CALL reduce using rule 60 (expression -> expression DIV expression .) + FUNCTION reduce using rule 60 (expression -> expression DIV expression .) + RETURN reduce using rule 60 (expression -> expression DIV expression .) + OPENFILE reduce using rule 60 (expression -> expression DIV expression .) + READFILE reduce using rule 60 (expression -> expression DIV expression .) + WRITEFILE reduce using rule 60 (expression -> expression DIV expression .) + CLOSEFILE reduce using rule 60 (expression -> expression DIV expression .) + SEEK reduce using rule 60 (expression -> expression DIV expression .) + TYPE reduce using rule 60 (expression -> expression DIV expression .) + PASS reduce using rule 60 (expression -> expression DIV expression .) + IMPORT reduce using rule 60 (expression -> expression DIV expression .) + CLASS reduce using rule 60 (expression -> expression DIV expression .) + LEFT_SQUARE reduce using rule 60 (expression -> expression DIV expression .) + ID reduce using rule 60 (expression -> expression DIV expression .) + NOT reduce using rule 60 (expression -> expression DIV expression .) + LEFT_PAREN reduce using rule 60 (expression -> expression DIV expression .) + DATE reduce using rule 60 (expression -> expression DIV expression .) + BOOLEAN reduce using rule 60 (expression -> expression DIV expression .) + CHAR reduce using rule 60 (expression -> expression DIV expression .) + STRING reduce using rule 60 (expression -> expression DIV expression .) + REAL reduce using rule 60 (expression -> expression DIV expression .) + INTEGER reduce using rule 60 (expression -> expression DIV expression .) + NEW reduce using rule 60 (expression -> expression DIV expression .) + $end reduce using rule 60 (expression -> expression DIV expression .) + RIGHT_SQUARE reduce using rule 60 (expression -> expression DIV expression .) + COMMA reduce using rule 60 (expression -> expression DIV expression .) + UNTIL reduce using rule 60 (expression -> expression DIV expression .) + ENDWHILE reduce using rule 60 (expression -> expression DIV expression .) + ENDTYPE reduce using rule 60 (expression -> expression DIV expression .) + ENDCLASS reduce using rule 60 (expression -> expression DIV expression .) + ELSE reduce using rule 60 (expression -> expression DIV expression .) + ENDIF reduce using rule 60 (expression -> expression DIV expression .) + ENDPROCEDURE reduce using rule 60 (expression -> expression DIV expression .) + SEMICOLON reduce using rule 60 (expression -> expression DIV expression .) + NEXT reduce using rule 60 (expression -> expression DIV expression .) + ENDFUNCTION reduce using rule 60 (expression -> expression DIV expression .) + THEN reduce using rule 60 (expression -> expression DIV expression .) + DO reduce using rule 60 (expression -> expression DIV expression .) + RIGHT_PAREN reduce using rule 60 (expression -> expression DIV expression .) + OTHERWISE reduce using rule 60 (expression -> expression DIV expression .) + TO reduce using rule 60 (expression -> expression DIV expression .) + COLON reduce using rule 60 (expression -> expression DIV expression .) + STEP reduce using rule 60 (expression -> expression DIV expression .) + + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 136 +state 143 - (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 ] - ! 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 ] + (61) expression -> expression MUL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 61 (expression -> expression MUL expression .) + OR reduce using rule 61 (expression -> expression MUL expression .) + AND reduce using rule 61 (expression -> expression MUL expression .) + EQUAL reduce using rule 61 (expression -> expression MUL expression .) + NOT_EQUAL reduce using rule 61 (expression -> expression MUL expression .) + LESS reduce using rule 61 (expression -> expression MUL expression .) + GREATER reduce using rule 61 (expression -> expression MUL expression .) + LESS_EQUAL reduce using rule 61 (expression -> expression MUL expression .) + GREATER_EQUAL reduce using rule 61 (expression -> expression MUL expression .) + MOD reduce using rule 61 (expression -> expression MUL expression .) + DIV reduce using rule 61 (expression -> expression MUL expression .) + MUL reduce using rule 61 (expression -> expression MUL expression .) + N_DIV reduce using rule 61 (expression -> expression MUL expression .) + PLUS reduce using rule 61 (expression -> expression MUL expression .) + MINUS reduce using rule 61 (expression -> expression MUL expression .) + CONNECT reduce using rule 61 (expression -> expression MUL expression .) + DOT reduce using rule 61 (expression -> expression MUL expression .) + POINTER reduce using rule 61 (expression -> expression MUL expression .) + DELETE reduce using rule 61 (expression -> expression MUL expression .) + DECLARE reduce using rule 61 (expression -> expression MUL expression .) + PUBLIC reduce using rule 61 (expression -> expression MUL expression .) + PRIVATE reduce using rule 61 (expression -> expression MUL expression .) + CONSTANT reduce using rule 61 (expression -> expression MUL expression .) + INPUT reduce using rule 61 (expression -> expression MUL expression .) + OUTPUT reduce using rule 61 (expression -> expression MUL expression .) + _OUTPUT reduce using rule 61 (expression -> expression MUL expression .) + IF reduce using rule 61 (expression -> expression MUL expression .) + CASE reduce using rule 61 (expression -> expression MUL expression .) + FOR reduce using rule 61 (expression -> expression MUL expression .) + REPEAT reduce using rule 61 (expression -> expression MUL expression .) + WHILE reduce using rule 61 (expression -> expression MUL expression .) + PROCEDURE reduce using rule 61 (expression -> expression MUL expression .) + CALL reduce using rule 61 (expression -> expression MUL expression .) + FUNCTION reduce using rule 61 (expression -> expression MUL expression .) + RETURN reduce using rule 61 (expression -> expression MUL expression .) + OPENFILE reduce using rule 61 (expression -> expression MUL expression .) + READFILE reduce using rule 61 (expression -> expression MUL expression .) + WRITEFILE reduce using rule 61 (expression -> expression MUL expression .) + CLOSEFILE reduce using rule 61 (expression -> expression MUL expression .) + SEEK reduce using rule 61 (expression -> expression MUL expression .) + TYPE reduce using rule 61 (expression -> expression MUL expression .) + PASS reduce using rule 61 (expression -> expression MUL expression .) + IMPORT reduce using rule 61 (expression -> expression MUL expression .) + CLASS reduce using rule 61 (expression -> expression MUL expression .) + LEFT_SQUARE reduce using rule 61 (expression -> expression MUL expression .) + ID reduce using rule 61 (expression -> expression MUL expression .) + NOT reduce using rule 61 (expression -> expression MUL expression .) + LEFT_PAREN reduce using rule 61 (expression -> expression MUL expression .) + DATE reduce using rule 61 (expression -> expression MUL expression .) + BOOLEAN reduce using rule 61 (expression -> expression MUL expression .) + CHAR reduce using rule 61 (expression -> expression MUL expression .) + STRING reduce using rule 61 (expression -> expression MUL expression .) + REAL reduce using rule 61 (expression -> expression MUL expression .) + INTEGER reduce using rule 61 (expression -> expression MUL expression .) + NEW reduce using rule 61 (expression -> expression MUL expression .) + $end reduce using rule 61 (expression -> expression MUL expression .) + RIGHT_SQUARE reduce using rule 61 (expression -> expression MUL expression .) + COMMA reduce using rule 61 (expression -> expression MUL expression .) + UNTIL reduce using rule 61 (expression -> expression MUL expression .) + ENDWHILE reduce using rule 61 (expression -> expression MUL expression .) + ENDTYPE reduce using rule 61 (expression -> expression MUL expression .) + ENDCLASS reduce using rule 61 (expression -> expression MUL expression .) + ELSE reduce using rule 61 (expression -> expression MUL expression .) + ENDIF reduce using rule 61 (expression -> expression MUL expression .) + ENDPROCEDURE reduce using rule 61 (expression -> expression MUL expression .) + SEMICOLON reduce using rule 61 (expression -> expression MUL expression .) + NEXT reduce using rule 61 (expression -> expression MUL expression .) + ENDFUNCTION reduce using rule 61 (expression -> expression MUL expression .) + THEN reduce using rule 61 (expression -> expression MUL expression .) + DO reduce using rule 61 (expression -> expression MUL expression .) + RIGHT_PAREN reduce using rule 61 (expression -> expression MUL expression .) + OTHERWISE reduce using rule 61 (expression -> expression MUL expression .) + TO reduce using rule 61 (expression -> expression MUL expression .) + COLON reduce using rule 61 (expression -> expression MUL expression .) + STEP reduce using rule 61 (expression -> expression MUL expression .) + + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 137 +state 144 - (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 ] - ! 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 ] + (62) expression -> expression N_DIV expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 62 (expression -> expression N_DIV expression .) + OR reduce using rule 62 (expression -> expression N_DIV expression .) + AND reduce using rule 62 (expression -> expression N_DIV expression .) + EQUAL reduce using rule 62 (expression -> expression N_DIV expression .) + NOT_EQUAL reduce using rule 62 (expression -> expression N_DIV expression .) + LESS reduce using rule 62 (expression -> expression N_DIV expression .) + GREATER reduce using rule 62 (expression -> expression N_DIV expression .) + LESS_EQUAL reduce using rule 62 (expression -> expression N_DIV expression .) + GREATER_EQUAL reduce using rule 62 (expression -> expression N_DIV expression .) + MOD reduce using rule 62 (expression -> expression N_DIV expression .) + DIV reduce using rule 62 (expression -> expression N_DIV expression .) + MUL reduce using rule 62 (expression -> expression N_DIV expression .) + N_DIV reduce using rule 62 (expression -> expression N_DIV expression .) + PLUS reduce using rule 62 (expression -> expression N_DIV expression .) + MINUS reduce using rule 62 (expression -> expression N_DIV expression .) + CONNECT reduce using rule 62 (expression -> expression N_DIV expression .) + DOT reduce using rule 62 (expression -> expression N_DIV expression .) + POINTER reduce using rule 62 (expression -> expression N_DIV expression .) + DELETE reduce using rule 62 (expression -> expression N_DIV expression .) + DECLARE reduce using rule 62 (expression -> expression N_DIV expression .) + PUBLIC reduce using rule 62 (expression -> expression N_DIV expression .) + PRIVATE reduce using rule 62 (expression -> expression N_DIV expression .) + CONSTANT reduce using rule 62 (expression -> expression N_DIV expression .) + INPUT reduce using rule 62 (expression -> expression N_DIV expression .) + OUTPUT reduce using rule 62 (expression -> expression N_DIV expression .) + _OUTPUT reduce using rule 62 (expression -> expression N_DIV expression .) + IF reduce using rule 62 (expression -> expression N_DIV expression .) + CASE reduce using rule 62 (expression -> expression N_DIV expression .) + FOR reduce using rule 62 (expression -> expression N_DIV expression .) + REPEAT reduce using rule 62 (expression -> expression N_DIV expression .) + WHILE reduce using rule 62 (expression -> expression N_DIV expression .) + PROCEDURE reduce using rule 62 (expression -> expression N_DIV expression .) + CALL reduce using rule 62 (expression -> expression N_DIV expression .) + FUNCTION reduce using rule 62 (expression -> expression N_DIV expression .) + RETURN reduce using rule 62 (expression -> expression N_DIV expression .) + OPENFILE reduce using rule 62 (expression -> expression N_DIV expression .) + READFILE reduce using rule 62 (expression -> expression N_DIV expression .) + WRITEFILE reduce using rule 62 (expression -> expression N_DIV expression .) + CLOSEFILE reduce using rule 62 (expression -> expression N_DIV expression .) + SEEK reduce using rule 62 (expression -> expression N_DIV expression .) + TYPE reduce using rule 62 (expression -> expression N_DIV expression .) + PASS reduce using rule 62 (expression -> expression N_DIV expression .) + IMPORT reduce using rule 62 (expression -> expression N_DIV expression .) + CLASS reduce using rule 62 (expression -> expression N_DIV expression .) + LEFT_SQUARE reduce using rule 62 (expression -> expression N_DIV expression .) + ID reduce using rule 62 (expression -> expression N_DIV expression .) + NOT reduce using rule 62 (expression -> expression N_DIV expression .) + LEFT_PAREN reduce using rule 62 (expression -> expression N_DIV expression .) + DATE reduce using rule 62 (expression -> expression N_DIV expression .) + BOOLEAN reduce using rule 62 (expression -> expression N_DIV expression .) + CHAR reduce using rule 62 (expression -> expression N_DIV expression .) + STRING reduce using rule 62 (expression -> expression N_DIV expression .) + REAL reduce using rule 62 (expression -> expression N_DIV expression .) + INTEGER reduce using rule 62 (expression -> expression N_DIV expression .) + NEW reduce using rule 62 (expression -> expression N_DIV expression .) + $end reduce using rule 62 (expression -> expression N_DIV expression .) + RIGHT_SQUARE reduce using rule 62 (expression -> expression N_DIV expression .) + COMMA reduce using rule 62 (expression -> expression N_DIV expression .) + UNTIL reduce using rule 62 (expression -> expression N_DIV expression .) + ENDWHILE reduce using rule 62 (expression -> expression N_DIV expression .) + ENDTYPE reduce using rule 62 (expression -> expression N_DIV expression .) + ENDCLASS reduce using rule 62 (expression -> expression N_DIV expression .) + ELSE reduce using rule 62 (expression -> expression N_DIV expression .) + ENDIF reduce using rule 62 (expression -> expression N_DIV expression .) + ENDPROCEDURE reduce using rule 62 (expression -> expression N_DIV expression .) + SEMICOLON reduce using rule 62 (expression -> expression N_DIV expression .) + NEXT reduce using rule 62 (expression -> expression N_DIV expression .) + ENDFUNCTION reduce using rule 62 (expression -> expression N_DIV expression .) + THEN reduce using rule 62 (expression -> expression N_DIV expression .) + DO reduce using rule 62 (expression -> expression N_DIV expression .) + RIGHT_PAREN reduce using rule 62 (expression -> expression N_DIV expression .) + OTHERWISE reduce using rule 62 (expression -> expression N_DIV expression .) + TO reduce using rule 62 (expression -> expression N_DIV expression .) + COLON reduce using rule 62 (expression -> expression N_DIV expression .) + STEP reduce using rule 62 (expression -> expression N_DIV expression .) + + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 138 +state 145 - (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 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 ] - ! 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 ] - ! 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 ] + (65) expression -> expression PLUS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 65 (expression -> expression PLUS expression .) + OR reduce using rule 65 (expression -> expression PLUS expression .) + AND reduce using rule 65 (expression -> expression PLUS expression .) + EQUAL reduce using rule 65 (expression -> expression PLUS expression .) + NOT_EQUAL reduce using rule 65 (expression -> expression PLUS expression .) + LESS reduce using rule 65 (expression -> expression PLUS expression .) + GREATER reduce using rule 65 (expression -> expression PLUS expression .) + LESS_EQUAL reduce using rule 65 (expression -> expression PLUS expression .) + GREATER_EQUAL reduce using rule 65 (expression -> expression PLUS expression .) + PLUS reduce using rule 65 (expression -> expression PLUS expression .) + MINUS reduce using rule 65 (expression -> expression PLUS expression .) + CONNECT reduce using rule 65 (expression -> expression PLUS expression .) + DOT reduce using rule 65 (expression -> expression PLUS expression .) + POINTER reduce using rule 65 (expression -> expression PLUS expression .) + DELETE reduce using rule 65 (expression -> expression PLUS expression .) + DECLARE reduce using rule 65 (expression -> expression PLUS expression .) + PUBLIC reduce using rule 65 (expression -> expression PLUS expression .) + PRIVATE reduce using rule 65 (expression -> expression PLUS expression .) + CONSTANT reduce using rule 65 (expression -> expression PLUS expression .) + INPUT reduce using rule 65 (expression -> expression PLUS expression .) + OUTPUT reduce using rule 65 (expression -> expression PLUS expression .) + _OUTPUT reduce using rule 65 (expression -> expression PLUS expression .) + IF reduce using rule 65 (expression -> expression PLUS expression .) + CASE reduce using rule 65 (expression -> expression PLUS expression .) + FOR reduce using rule 65 (expression -> expression PLUS expression .) + REPEAT reduce using rule 65 (expression -> expression PLUS expression .) + WHILE reduce using rule 65 (expression -> expression PLUS expression .) + PROCEDURE reduce using rule 65 (expression -> expression PLUS expression .) + CALL reduce using rule 65 (expression -> expression PLUS expression .) + FUNCTION reduce using rule 65 (expression -> expression PLUS expression .) + RETURN reduce using rule 65 (expression -> expression PLUS expression .) + OPENFILE reduce using rule 65 (expression -> expression PLUS expression .) + READFILE reduce using rule 65 (expression -> expression PLUS expression .) + WRITEFILE reduce using rule 65 (expression -> expression PLUS expression .) + CLOSEFILE reduce using rule 65 (expression -> expression PLUS expression .) + SEEK reduce using rule 65 (expression -> expression PLUS expression .) + TYPE reduce using rule 65 (expression -> expression PLUS expression .) + PASS reduce using rule 65 (expression -> expression PLUS expression .) + IMPORT reduce using rule 65 (expression -> expression PLUS expression .) + CLASS reduce using rule 65 (expression -> expression PLUS expression .) + LEFT_SQUARE reduce using rule 65 (expression -> expression PLUS expression .) + ID reduce using rule 65 (expression -> expression PLUS expression .) + NOT reduce using rule 65 (expression -> expression PLUS expression .) + LEFT_PAREN reduce using rule 65 (expression -> expression PLUS expression .) + DATE reduce using rule 65 (expression -> expression PLUS expression .) + BOOLEAN reduce using rule 65 (expression -> expression PLUS expression .) + CHAR reduce using rule 65 (expression -> expression PLUS expression .) + STRING reduce using rule 65 (expression -> expression PLUS expression .) + REAL reduce using rule 65 (expression -> expression PLUS expression .) + INTEGER reduce using rule 65 (expression -> expression PLUS expression .) + NEW reduce using rule 65 (expression -> expression PLUS expression .) + $end reduce using rule 65 (expression -> expression PLUS expression .) + RIGHT_SQUARE reduce using rule 65 (expression -> expression PLUS expression .) + COMMA reduce using rule 65 (expression -> expression PLUS expression .) + UNTIL reduce using rule 65 (expression -> expression PLUS expression .) + ENDWHILE reduce using rule 65 (expression -> expression PLUS expression .) + ENDTYPE reduce using rule 65 (expression -> expression PLUS expression .) + ENDCLASS reduce using rule 65 (expression -> expression PLUS expression .) + ELSE reduce using rule 65 (expression -> expression PLUS expression .) + ENDIF reduce using rule 65 (expression -> expression PLUS expression .) + ENDPROCEDURE reduce using rule 65 (expression -> expression PLUS expression .) + SEMICOLON reduce using rule 65 (expression -> expression PLUS expression .) + NEXT reduce using rule 65 (expression -> expression PLUS expression .) + ENDFUNCTION reduce using rule 65 (expression -> expression PLUS expression .) + THEN reduce using rule 65 (expression -> expression PLUS expression .) + RIGHT_PAREN reduce using rule 65 (expression -> expression PLUS expression .) + DO reduce using rule 65 (expression -> expression PLUS expression .) + OTHERWISE reduce using rule 65 (expression -> expression PLUS expression .) + TO reduce using rule 65 (expression -> expression PLUS expression .) + COLON reduce using rule 65 (expression -> expression PLUS expression .) + STEP reduce using rule 65 (expression -> expression PLUS expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + + ! MOD [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! DIV [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! MUL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! N_DIV [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 139 +state 146 - (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 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 ] - ! 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 ] - ! 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 ] + (66) expression -> expression MINUS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ASSIGN reduce using rule 66 (expression -> expression MINUS expression .) + OR reduce using rule 66 (expression -> expression MINUS expression .) + AND reduce using rule 66 (expression -> expression MINUS expression .) + EQUAL reduce using rule 66 (expression -> expression MINUS expression .) + NOT_EQUAL reduce using rule 66 (expression -> expression MINUS expression .) + LESS reduce using rule 66 (expression -> expression MINUS expression .) + GREATER reduce using rule 66 (expression -> expression MINUS expression .) + LESS_EQUAL reduce using rule 66 (expression -> expression MINUS expression .) + GREATER_EQUAL reduce using rule 66 (expression -> expression MINUS expression .) + PLUS reduce using rule 66 (expression -> expression MINUS expression .) + MINUS reduce using rule 66 (expression -> expression MINUS expression .) + CONNECT reduce using rule 66 (expression -> expression MINUS expression .) + DOT reduce using rule 66 (expression -> expression MINUS expression .) + POINTER reduce using rule 66 (expression -> expression MINUS expression .) + DELETE reduce using rule 66 (expression -> expression MINUS expression .) + DECLARE reduce using rule 66 (expression -> expression MINUS expression .) + PUBLIC reduce using rule 66 (expression -> expression MINUS expression .) + PRIVATE reduce using rule 66 (expression -> expression MINUS expression .) + CONSTANT reduce using rule 66 (expression -> expression MINUS expression .) + INPUT reduce using rule 66 (expression -> expression MINUS expression .) + OUTPUT reduce using rule 66 (expression -> expression MINUS expression .) + _OUTPUT reduce using rule 66 (expression -> expression MINUS expression .) + IF reduce using rule 66 (expression -> expression MINUS expression .) + CASE reduce using rule 66 (expression -> expression MINUS expression .) + FOR reduce using rule 66 (expression -> expression MINUS expression .) + REPEAT reduce using rule 66 (expression -> expression MINUS expression .) + WHILE reduce using rule 66 (expression -> expression MINUS expression .) + PROCEDURE reduce using rule 66 (expression -> expression MINUS expression .) + CALL reduce using rule 66 (expression -> expression MINUS expression .) + FUNCTION reduce using rule 66 (expression -> expression MINUS expression .) + RETURN reduce using rule 66 (expression -> expression MINUS expression .) + OPENFILE reduce using rule 66 (expression -> expression MINUS expression .) + READFILE reduce using rule 66 (expression -> expression MINUS expression .) + WRITEFILE reduce using rule 66 (expression -> expression MINUS expression .) + CLOSEFILE reduce using rule 66 (expression -> expression MINUS expression .) + SEEK reduce using rule 66 (expression -> expression MINUS expression .) + TYPE reduce using rule 66 (expression -> expression MINUS expression .) + PASS reduce using rule 66 (expression -> expression MINUS expression .) + IMPORT reduce using rule 66 (expression -> expression MINUS expression .) + CLASS reduce using rule 66 (expression -> expression MINUS expression .) + LEFT_SQUARE reduce using rule 66 (expression -> expression MINUS expression .) + ID reduce using rule 66 (expression -> expression MINUS expression .) + NOT reduce using rule 66 (expression -> expression MINUS expression .) + LEFT_PAREN reduce using rule 66 (expression -> expression MINUS expression .) + DATE reduce using rule 66 (expression -> expression MINUS expression .) + BOOLEAN reduce using rule 66 (expression -> expression MINUS expression .) + CHAR reduce using rule 66 (expression -> expression MINUS expression .) + STRING reduce using rule 66 (expression -> expression MINUS expression .) + REAL reduce using rule 66 (expression -> expression MINUS expression .) + INTEGER reduce using rule 66 (expression -> expression MINUS expression .) + NEW reduce using rule 66 (expression -> expression MINUS expression .) + $end reduce using rule 66 (expression -> expression MINUS expression .) + RIGHT_SQUARE reduce using rule 66 (expression -> expression MINUS expression .) + COMMA reduce using rule 66 (expression -> expression MINUS expression .) + UNTIL reduce using rule 66 (expression -> expression MINUS expression .) + ENDWHILE reduce using rule 66 (expression -> expression MINUS expression .) + ENDTYPE reduce using rule 66 (expression -> expression MINUS expression .) + ENDCLASS reduce using rule 66 (expression -> expression MINUS expression .) + ELSE reduce using rule 66 (expression -> expression MINUS expression .) + ENDIF reduce using rule 66 (expression -> expression MINUS expression .) + ENDPROCEDURE reduce using rule 66 (expression -> expression MINUS expression .) + SEMICOLON reduce using rule 66 (expression -> expression MINUS expression .) + NEXT reduce using rule 66 (expression -> expression MINUS expression .) + ENDFUNCTION reduce using rule 66 (expression -> expression MINUS expression .) + THEN reduce using rule 66 (expression -> expression MINUS expression .) + RIGHT_PAREN reduce using rule 66 (expression -> expression MINUS expression .) + DO reduce using rule 66 (expression -> expression MINUS expression .) + OTHERWISE reduce using rule 66 (expression -> expression MINUS expression .) + TO reduce using rule 66 (expression -> expression MINUS expression .) + COLON reduce using rule 66 (expression -> expression MINUS expression .) + STEP reduce using rule 66 (expression -> expression MINUS expression .) + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + + ! MOD [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! DIV [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! MUL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! N_DIV [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 140 +state 147 - (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 + (67) expression -> expression CONNECT expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER ! shift/reduce conflict for OR resolved as shift ! shift/reduce conflict for AND resolved as shift @@ -8902,121 +9011,121 @@ 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 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 - 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 - - ! 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 .) ] + ASSIGN reduce using rule 67 (expression -> expression CONNECT expression .) + DELETE reduce using rule 67 (expression -> expression CONNECT expression .) + DECLARE reduce using rule 67 (expression -> expression CONNECT expression .) + PUBLIC reduce using rule 67 (expression -> expression CONNECT expression .) + PRIVATE reduce using rule 67 (expression -> expression CONNECT expression .) + CONSTANT reduce using rule 67 (expression -> expression CONNECT expression .) + INPUT reduce using rule 67 (expression -> expression CONNECT expression .) + OUTPUT reduce using rule 67 (expression -> expression CONNECT expression .) + _OUTPUT reduce using rule 67 (expression -> expression CONNECT expression .) + IF reduce using rule 67 (expression -> expression CONNECT expression .) + CASE reduce using rule 67 (expression -> expression CONNECT expression .) + FOR reduce using rule 67 (expression -> expression CONNECT expression .) + REPEAT reduce using rule 67 (expression -> expression CONNECT expression .) + WHILE reduce using rule 67 (expression -> expression CONNECT expression .) + PROCEDURE reduce using rule 67 (expression -> expression CONNECT expression .) + CALL reduce using rule 67 (expression -> expression CONNECT expression .) + FUNCTION reduce using rule 67 (expression -> expression CONNECT expression .) + RETURN reduce using rule 67 (expression -> expression CONNECT expression .) + OPENFILE reduce using rule 67 (expression -> expression CONNECT expression .) + READFILE reduce using rule 67 (expression -> expression CONNECT expression .) + WRITEFILE reduce using rule 67 (expression -> expression CONNECT expression .) + CLOSEFILE reduce using rule 67 (expression -> expression CONNECT expression .) + SEEK reduce using rule 67 (expression -> expression CONNECT expression .) + TYPE reduce using rule 67 (expression -> expression CONNECT expression .) + PASS reduce using rule 67 (expression -> expression CONNECT expression .) + IMPORT reduce using rule 67 (expression -> expression CONNECT expression .) + CLASS reduce using rule 67 (expression -> expression CONNECT expression .) + LEFT_SQUARE reduce using rule 67 (expression -> expression CONNECT expression .) + ID reduce using rule 67 (expression -> expression CONNECT expression .) + NOT reduce using rule 67 (expression -> expression CONNECT expression .) + LEFT_PAREN reduce using rule 67 (expression -> expression CONNECT expression .) + DATE reduce using rule 67 (expression -> expression CONNECT expression .) + BOOLEAN reduce using rule 67 (expression -> expression CONNECT expression .) + CHAR reduce using rule 67 (expression -> expression CONNECT expression .) + STRING reduce using rule 67 (expression -> expression CONNECT expression .) + REAL reduce using rule 67 (expression -> expression CONNECT expression .) + INTEGER reduce using rule 67 (expression -> expression CONNECT expression .) + NEW reduce using rule 67 (expression -> expression CONNECT expression .) + $end reduce using rule 67 (expression -> expression CONNECT expression .) + RIGHT_SQUARE reduce using rule 67 (expression -> expression CONNECT expression .) + COMMA reduce using rule 67 (expression -> expression CONNECT expression .) + UNTIL reduce using rule 67 (expression -> expression CONNECT expression .) + ENDWHILE reduce using rule 67 (expression -> expression CONNECT expression .) + ENDTYPE reduce using rule 67 (expression -> expression CONNECT expression .) + ENDCLASS reduce using rule 67 (expression -> expression CONNECT expression .) + ELSE reduce using rule 67 (expression -> expression CONNECT expression .) + ENDIF reduce using rule 67 (expression -> expression CONNECT expression .) + ENDPROCEDURE reduce using rule 67 (expression -> expression CONNECT expression .) + SEMICOLON reduce using rule 67 (expression -> expression CONNECT expression .) + NEXT reduce using rule 67 (expression -> expression CONNECT expression .) + ENDFUNCTION reduce using rule 67 (expression -> expression CONNECT expression .) + THEN reduce using rule 67 (expression -> expression CONNECT expression .) + DO reduce using rule 67 (expression -> expression CONNECT expression .) + RIGHT_PAREN reduce using rule 67 (expression -> expression CONNECT expression .) + OTHERWISE reduce using rule 67 (expression -> expression CONNECT expression .) + TO reduce using rule 67 (expression -> expression CONNECT expression .) + COLON reduce using rule 67 (expression -> expression CONNECT expression .) + STEP reduce using rule 67 (expression -> expression CONNECT expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! OR [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! AND [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! EQUAL [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! NOT_EQUAL [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! LESS [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! GREATER [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! LESS_EQUAL [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! GREATER_EQUAL [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! MOD [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! DIV [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! MUL [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! N_DIV [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! PLUS [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! MINUS [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! CONNECT [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! DOT [ reduce using rule 67 (expression -> expression CONNECT expression .) ] + ! POINTER [ reduce using rule 67 (expression -> expression CONNECT expression .) ] -state 141 +state 148 - (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 + (135) expression -> expression DOT expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER ! shift/reduce conflict for OR resolved as shift ! shift/reduce conflict for AND resolved as shift @@ -9035,223 +9144,223 @@ state 141 ! 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 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 - 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 - - ! 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 .) ] + ASSIGN reduce using rule 135 (expression -> expression DOT expression .) + DELETE reduce using rule 135 (expression -> expression DOT expression .) + DECLARE reduce using rule 135 (expression -> expression DOT expression .) + PUBLIC reduce using rule 135 (expression -> expression DOT expression .) + PRIVATE reduce using rule 135 (expression -> expression DOT expression .) + CONSTANT reduce using rule 135 (expression -> expression DOT expression .) + INPUT reduce using rule 135 (expression -> expression DOT expression .) + OUTPUT reduce using rule 135 (expression -> expression DOT expression .) + _OUTPUT reduce using rule 135 (expression -> expression DOT expression .) + IF reduce using rule 135 (expression -> expression DOT expression .) + CASE reduce using rule 135 (expression -> expression DOT expression .) + FOR reduce using rule 135 (expression -> expression DOT expression .) + REPEAT reduce using rule 135 (expression -> expression DOT expression .) + WHILE reduce using rule 135 (expression -> expression DOT expression .) + PROCEDURE reduce using rule 135 (expression -> expression DOT expression .) + CALL reduce using rule 135 (expression -> expression DOT expression .) + FUNCTION reduce using rule 135 (expression -> expression DOT expression .) + RETURN reduce using rule 135 (expression -> expression DOT expression .) + OPENFILE reduce using rule 135 (expression -> expression DOT expression .) + READFILE reduce using rule 135 (expression -> expression DOT expression .) + WRITEFILE reduce using rule 135 (expression -> expression DOT expression .) + CLOSEFILE reduce using rule 135 (expression -> expression DOT expression .) + SEEK reduce using rule 135 (expression -> expression DOT expression .) + TYPE reduce using rule 135 (expression -> expression DOT expression .) + PASS reduce using rule 135 (expression -> expression DOT expression .) + IMPORT reduce using rule 135 (expression -> expression DOT expression .) + CLASS reduce using rule 135 (expression -> expression DOT expression .) + LEFT_SQUARE reduce using rule 135 (expression -> expression DOT expression .) + ID reduce using rule 135 (expression -> expression DOT expression .) + NOT reduce using rule 135 (expression -> expression DOT expression .) + LEFT_PAREN reduce using rule 135 (expression -> expression DOT expression .) + DATE reduce using rule 135 (expression -> expression DOT expression .) + BOOLEAN reduce using rule 135 (expression -> expression DOT expression .) + CHAR reduce using rule 135 (expression -> expression DOT expression .) + STRING reduce using rule 135 (expression -> expression DOT expression .) + REAL reduce using rule 135 (expression -> expression DOT expression .) + INTEGER reduce using rule 135 (expression -> expression DOT expression .) + NEW reduce using rule 135 (expression -> expression DOT expression .) + $end reduce using rule 135 (expression -> expression DOT expression .) + RIGHT_SQUARE reduce using rule 135 (expression -> expression DOT expression .) + COMMA reduce using rule 135 (expression -> expression DOT expression .) + UNTIL reduce using rule 135 (expression -> expression DOT expression .) + ENDWHILE reduce using rule 135 (expression -> expression DOT expression .) + ENDTYPE reduce using rule 135 (expression -> expression DOT expression .) + ENDCLASS reduce using rule 135 (expression -> expression DOT expression .) + ELSE reduce using rule 135 (expression -> expression DOT expression .) + ENDIF reduce using rule 135 (expression -> expression DOT expression .) + ENDPROCEDURE reduce using rule 135 (expression -> expression DOT expression .) + SEMICOLON reduce using rule 135 (expression -> expression DOT expression .) + NEXT reduce using rule 135 (expression -> expression DOT expression .) + ENDFUNCTION reduce using rule 135 (expression -> expression DOT expression .) + THEN reduce using rule 135 (expression -> expression DOT expression .) + DO reduce using rule 135 (expression -> expression DOT expression .) + RIGHT_PAREN reduce using rule 135 (expression -> expression DOT expression .) + OTHERWISE reduce using rule 135 (expression -> expression DOT expression .) + TO reduce using rule 135 (expression -> expression DOT expression .) + COLON reduce using rule 135 (expression -> expression DOT expression .) + STEP reduce using rule 135 (expression -> expression DOT expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! OR [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! AND [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! EQUAL [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! NOT_EQUAL [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! LESS [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! GREATER [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! LESS_EQUAL [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! GREATER_EQUAL [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! MOD [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! DIV [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! MUL [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! N_DIV [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! PLUS [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! MINUS [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! CONNECT [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! DOT [ reduce using rule 135 (expression -> expression DOT expression .) ] + ! POINTER [ reduce using rule 135 (expression -> expression DOT expression .) ] -state 142 +state 149 - (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 .) + (23) expression -> LEFT_SQUARE array_items RIGHT_SQUARE . + + ASSIGN reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OR reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + AND reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + EQUAL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NOT_EQUAL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LESS reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + GREATER reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LESS_EQUAL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + GREATER_EQUAL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + MOD reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DIV reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + MUL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + N_DIV reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PLUS reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + MINUS reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CONNECT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DOT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + POINTER reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DELETE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DECLARE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PUBLIC reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PRIVATE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CONSTANT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + INPUT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OUTPUT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + _OUTPUT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + IF reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CASE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + FOR reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + REPEAT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + WHILE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PROCEDURE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CALL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + FUNCTION reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + RETURN reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OPENFILE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + READFILE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + WRITEFILE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CLOSEFILE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + SEEK reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + TYPE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + PASS reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + IMPORT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CLASS reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ID reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NOT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DATE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + BOOLEAN reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + CHAR reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + STRING reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + REAL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + INTEGER reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NEW reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + $end reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + RIGHT_SQUARE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + COMMA reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + UNTIL reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDWHILE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDTYPE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDCLASS reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ELSE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDIF reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + SEMICOLON reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + NEXT reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + THEN reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + DO reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + RIGHT_PAREN reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + OTHERWISE reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + TO reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + COLON reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) + STEP reduce using rule 23 (expression -> LEFT_SQUARE array_items RIGHT_SQUARE .) -state 143 +state 150 - (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 + (25) array_items -> array_items COMMA . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9270,49 +9379,49 @@ state 143 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 190 + expression shift and go to state 201 -state 144 +state 151 - (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 + (30) output_expression -> output_expression COMMA . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9331,124 +9440,127 @@ state 144 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 191 + expression shift and go to state 202 -state 145 +state 152 - (27) statement -> IF expression THEN . statements ELSE statements ENDIF - (28) statement -> IF expression THEN . statements ENDIF + (32) statement -> IF expression THEN . statements ELSE statements ENDIF + (33) statement -> IF expression THEN . statements ENDIF (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -9494,93 +9606,93 @@ state 145 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 192 + statements shift and go to state 203 statement shift and go to state 2 -state 146 +state 153 - (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 - 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 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 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 155 - OTHERWISE shift and go to state 198 + (34) statement -> CASE OF expression . cases ENDCASE + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + (35) cases -> . cases case + (36) cases -> . case + (37) case -> . case_expression COLON statements SEMICOLON + (38) case -> . otherwise_statement SEMICOLON + (39) case_expression -> . expression TO expression + (40) case_expression -> . expression + (41) otherwise_statement -> . OTHERWISE COLON statements + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 158 + DIV shift and go to state 159 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 160 + MINUS shift and go to state 161 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 162 + OTHERWISE shift and go to state 209 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -9593,54 +9705,54 @@ state 146 INTEGER shift and go to state 45 NEW shift and go to state 21 - 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 + expression shift and go to state 204 + cases shift and go to state 205 + case shift and go to state 206 + case_expression shift and go to state 207 + otherwise_statement shift and go to state 208 -state 147 +state 154 - (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 + (42) statement -> FOR ID ASSIGN . expression TO expression STEP expression statements NEXT ID + (43) statement -> FOR ID ASSIGN . expression TO expression statements NEXT ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9659,49 +9771,49 @@ state 147 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 199 + expression shift and go to state 210 -state 148 +state 155 - (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 + (44) statement -> REPEAT statements UNTIL . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -9720,123 +9832,126 @@ state 148 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 200 + expression shift and go to state 211 -state 149 +state 156 - (40) statement -> WHILE expression DO . statements ENDWHILE + (45) statement -> WHILE expression DO . statements ENDWHILE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -9882,125 +9997,128 @@ state 149 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 201 + statements shift and go to state 212 statement shift and go to state 2 -state 150 +state 157 - (41) statement -> WHILE expression statements . ENDWHILE + (46) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDWHILE shift and go to state 213 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -10047,50 +10165,50 @@ state 150 expression shift and go to state 9 statement shift and go to state 46 -state 151 +state 158 - (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 + (59) expression -> expression MOD . expression + (121) expression -> MOD . LEFT_PAREN parameters RIGHT_PAREN + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + LEFT_PAREN shift and go to state 214 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10107,52 +10225,52 @@ 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 141 -state 152 +state 159 - (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 + (60) expression -> expression DIV . expression + (122) expression -> DIV . LEFT_PAREN parameters RIGHT_PAREN + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + LEFT_PAREN shift and go to state 215 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10169,50 +10287,50 @@ state 152 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 142 -state 153 +state 160 - (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 + (65) expression -> expression PLUS . expression + (64) expression -> PLUS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10231,50 +10349,50 @@ state 153 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 205 + expression shift and go to state 216 -state 154 +state 161 - (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 + (66) expression -> expression MINUS . expression + (63) expression -> MINUS . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10293,50 +10411,50 @@ state 154 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 206 + expression shift and go to state 217 -state 155 +state 162 - (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 + (140) expression -> expression POINTER . + (139) expression -> POINTER . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) 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 @@ -10354,47 +10472,47 @@ state 155 ! 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 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 .) + DO reduce using rule 140 (expression -> expression POINTER .) + OR reduce using rule 140 (expression -> expression POINTER .) + AND reduce using rule 140 (expression -> expression POINTER .) + EQUAL reduce using rule 140 (expression -> expression POINTER .) + NOT_EQUAL reduce using rule 140 (expression -> expression POINTER .) + LESS reduce using rule 140 (expression -> expression POINTER .) + GREATER reduce using rule 140 (expression -> expression POINTER .) + LESS_EQUAL reduce using rule 140 (expression -> expression POINTER .) + GREATER_EQUAL reduce using rule 140 (expression -> expression POINTER .) + MUL reduce using rule 140 (expression -> expression POINTER .) + N_DIV reduce using rule 140 (expression -> expression POINTER .) + CONNECT reduce using rule 140 (expression -> expression POINTER .) + DOT reduce using rule 140 (expression -> expression POINTER .) + DELETE reduce using rule 140 (expression -> expression POINTER .) + DECLARE reduce using rule 140 (expression -> expression POINTER .) + PUBLIC reduce using rule 140 (expression -> expression POINTER .) + PRIVATE reduce using rule 140 (expression -> expression POINTER .) + CONSTANT reduce using rule 140 (expression -> expression POINTER .) + INPUT reduce using rule 140 (expression -> expression POINTER .) + OUTPUT reduce using rule 140 (expression -> expression POINTER .) + _OUTPUT reduce using rule 140 (expression -> expression POINTER .) + IF reduce using rule 140 (expression -> expression POINTER .) + CASE reduce using rule 140 (expression -> expression POINTER .) + FOR reduce using rule 140 (expression -> expression POINTER .) + REPEAT reduce using rule 140 (expression -> expression POINTER .) + WHILE reduce using rule 140 (expression -> expression POINTER .) + PROCEDURE reduce using rule 140 (expression -> expression POINTER .) + CALL reduce using rule 140 (expression -> expression POINTER .) + FUNCTION reduce using rule 140 (expression -> expression POINTER .) + RETURN reduce using rule 140 (expression -> expression POINTER .) + OPENFILE reduce using rule 140 (expression -> expression POINTER .) + READFILE reduce using rule 140 (expression -> expression POINTER .) + WRITEFILE reduce using rule 140 (expression -> expression POINTER .) + CLOSEFILE reduce using rule 140 (expression -> expression POINTER .) + SEEK reduce using rule 140 (expression -> expression POINTER .) + TYPE reduce using rule 140 (expression -> expression POINTER .) + PASS reduce using rule 140 (expression -> expression POINTER .) + IMPORT reduce using rule 140 (expression -> expression POINTER .) + CLASS reduce using rule 140 (expression -> expression POINTER .) + OTHERWISE reduce using rule 140 (expression -> expression POINTER .) + STEP reduce using rule 140 (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 @@ -10412,197 +10530,197 @@ state 155 POINTER shift and go to state 31 NEW shift and go to state 21 - ! 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 .) ] + ! MOD [ reduce using rule 140 (expression -> expression POINTER .) ] + ! DIV [ reduce using rule 140 (expression -> expression POINTER .) ] + ! PLUS [ reduce using rule 140 (expression -> expression POINTER .) ] + ! MINUS [ reduce using rule 140 (expression -> expression POINTER .) ] + ! POINTER [ reduce using rule 140 (expression -> expression POINTER .) ] + ! LEFT_SQUARE [ reduce using rule 140 (expression -> expression POINTER .) ] + ! ID [ reduce using rule 140 (expression -> expression POINTER .) ] + ! NOT [ reduce using rule 140 (expression -> expression POINTER .) ] + ! LEFT_PAREN [ reduce using rule 140 (expression -> expression POINTER .) ] + ! DATE [ reduce using rule 140 (expression -> expression POINTER .) ] + ! BOOLEAN [ reduce using rule 140 (expression -> expression POINTER .) ] + ! CHAR [ reduce using rule 140 (expression -> expression POINTER .) ] + ! STRING [ reduce using rule 140 (expression -> expression POINTER .) ] + ! REAL [ reduce using rule 140 (expression -> expression POINTER .) ] + ! INTEGER [ reduce using rule 140 (expression -> expression POINTER .) ] + ! NEW [ reduce using rule 140 (expression -> expression POINTER .) ] - expression shift and go to state 101 + expression shift and go to state 104 -state 156 +state 163 - (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 + (88) statement -> PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 220 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 219 + declare_parameter shift and go to state 221 -state 157 +state 164 - (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 + (89) statement -> PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 225 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 224 + declare_parameter shift and go to state 221 -state 158 +state 165 - (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 .) + (68) expression -> LEFT_PAREN expression RIGHT_PAREN . + + ASSIGN reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OR reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + AND reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + EQUAL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NOT_EQUAL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LESS reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + GREATER reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LESS_EQUAL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + MOD reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DIV reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + MUL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + N_DIV reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PLUS reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + MINUS reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CONNECT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DOT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + POINTER reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DELETE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DECLARE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PUBLIC reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PRIVATE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CONSTANT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + INPUT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OUTPUT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + _OUTPUT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + IF reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CASE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + FOR reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + REPEAT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + WHILE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PROCEDURE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CALL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + FUNCTION reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + RETURN reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OPENFILE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + READFILE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + WRITEFILE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CLOSEFILE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + SEEK reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + TYPE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + PASS reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + IMPORT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CLASS reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ID reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NOT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + LEFT_PAREN reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DATE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + BOOLEAN reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + CHAR reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + STRING reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + REAL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + INTEGER reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NEW reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + $end reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + COMMA reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + UNTIL reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDWHILE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDTYPE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDCLASS reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ELSE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDIF reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + SEMICOLON reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + NEXT reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + ENDFUNCTION reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + THEN reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + DO reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + OTHERWISE reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + TO reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + COLON reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) + STEP reduce using rule 68 (expression -> LEFT_PAREN expression RIGHT_PAREN .) -state 159 +state 166 - (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 + (147) expression -> NEW ID LEFT_PAREN . parameters RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10621,55 +10739,55 @@ state 159 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 215 - expression shift and go to state 113 + parameters shift and go to state 226 + expression shift and go to state 116 -state 160 +state 167 - (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 - - RIGHT_PAREN shift and go to state 217 + (100) statement -> CALL ID LEFT_PAREN . parameters RIGHT_PAREN + (101) statement -> CALL ID LEFT_PAREN . RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + RIGHT_PAREN shift and go to state 228 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -10687,99 +10805,99 @@ state 160 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 216 - expression shift and go to state 113 + parameters shift and go to state 227 + expression shift and go to state 116 -state 161 +state 168 - (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 + (102) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 230 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 229 + declare_parameter shift and go to state 221 -state 162 +state 169 - (120) statement -> OPENFILE expression FOR . READ - (121) statement -> OPENFILE expression FOR . WRITE - (122) statement -> OPENFILE expression FOR . APPEND - (123) statement -> OPENFILE expression FOR . RANDOM + (125) statement -> OPENFILE expression FOR . READ + (126) statement -> OPENFILE expression FOR . WRITE + (127) statement -> OPENFILE expression FOR . APPEND + (128) statement -> OPENFILE expression FOR . RANDOM - 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 + READ shift and go to state 231 + WRITE shift and go to state 232 + APPEND shift and go to state 233 + RANDOM shift and go to state 234 -state 163 +state 170 - (124) statement -> READFILE expression COMMA . ID LEFT_SQUARE indexes RIGHT_SQUARE - (125) statement -> READFILE expression COMMA . ID + (129) statement -> READFILE expression COMMA . ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> READFILE expression COMMA . ID - ID shift and go to state 224 + ID shift and go to state 235 -state 164 +state 171 - (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 + (131) statement -> WRITEFILE expression COMMA . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10798,49 +10916,49 @@ state 164 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 225 + expression shift and go to state 236 -state 165 +state 172 - (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 + (133) statement -> SEEK expression COMMA . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -10859,124 +10977,127 @@ state 165 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 226 + expression shift and go to state 237 -state 166 +state 173 - (129) statement -> TYPE ID statements . ENDTYPE + (134) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDTYPE shift and go to state 238 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -11023,133 +11144,136 @@ state 166 statement shift and go to state 46 expression shift and go to state 9 -state 167 +state 174 - (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 + (136) statement -> TYPE ID EQUAL . LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> TYPE ID EQUAL . POINTER ID + (148) statement -> TYPE ID EQUAL . SET OF ID - LEFT_PAREN shift and go to state 228 - POINTER shift and go to state 229 - SET shift and go to state 230 + LEFT_PAREN shift and go to state 239 + POINTER shift and go to state 240 + SET shift and go to state 241 -state 168 +state 175 - (139) statement -> CLASS ID statements . ENDCLASS + (144) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDCLASS shift and go to state 242 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -11196,153 +11320,153 @@ state 168 statement shift and go to state 46 expression shift and go to state 9 -state 169 +state 176 - (140) statement -> CLASS ID INHERITS . ID statements ENDCLASS + (145) statement -> CLASS ID INHERITS . ID statements ENDCLASS - ID shift and go to state 232 + ID shift and go to state 243 -state 170 +state 177 - (116) expression -> MOD LEFT_PAREN parameters . RIGHT_PAREN - (81) parameters -> parameters . COMMA expression + (121) expression -> MOD LEFT_PAREN parameters . RIGHT_PAREN + (86) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 233 - COMMA shift and go to state 175 + RIGHT_PAREN shift and go to state 244 + COMMA shift and go to state 182 -state 171 +state 178 - (117) expression -> DIV LEFT_PAREN parameters . RIGHT_PAREN - (81) parameters -> parameters . COMMA expression + (122) expression -> DIV LEFT_PAREN parameters . RIGHT_PAREN + (86) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 234 - COMMA shift and go to state 175 + RIGHT_PAREN shift and go to state 245 + COMMA shift and go to state 182 -state 172 +state 179 - (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 .) + (49) expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE . + + ASSIGN reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OR reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + AND reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + EQUAL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NOT_EQUAL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LESS reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + GREATER reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LESS_EQUAL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + GREATER_EQUAL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MOD reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DIV reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MUL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + N_DIV reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PLUS reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MINUS reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CONNECT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DOT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + POINTER reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DELETE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DECLARE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PUBLIC reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PRIVATE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CONSTANT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INPUT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OUTPUT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + _OUTPUT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IF reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CASE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FOR reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REPEAT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WHILE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PROCEDURE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CALL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FUNCTION reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RETURN reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OPENFILE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + READFILE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WRITEFILE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLOSEFILE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEEK reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + TYPE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PASS reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IMPORT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLASS reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ID reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NOT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DATE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + BOOLEAN reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CHAR reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + STRING reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REAL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INTEGER reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEW reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + $end reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RIGHT_SQUARE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + COMMA reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + UNTIL reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDWHILE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDTYPE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDCLASS reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ELSE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDIF reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEMICOLON reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEXT reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + THEN reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DO reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RIGHT_PAREN reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OTHERWISE reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + TO reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + COLON reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) + STEP reduce using rule 49 (expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE .) -state 173 +state 180 - (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 + (21) indexes -> indexes COMMA . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -11361,130 +11485,130 @@ state 173 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 235 + expression shift and go to state 246 -state 174 +state 181 - (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 .) + (120) expression -> ID LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 120 (expression -> ID LEFT_PAREN parameters RIGHT_PAREN .) -state 175 +state 182 - (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 + (86) parameters -> parameters COMMA . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -11503,9 +11627,9 @@ state 175 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 236 + expression shift and go to state 247 -state 176 +state 183 (4) statement -> DECLARE ID COLON ID . @@ -11564,14 +11688,81 @@ state 176 ENDFUNCTION reduce using rule 4 (statement -> DECLARE ID COLON ID .) -state 177 +state 184 - (9) statement -> DECLARE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (14) statement -> DECLARE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - LEFT_SQUARE shift and go to state 237 + LEFT_SQUARE shift and go to state 248 -state 178 +state 185 + + (6) statement -> DECLARE ids COLON ID . + + DELETE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + DECLARE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + PUBLIC reduce using rule 6 (statement -> DECLARE ids COLON ID .) + PRIVATE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + CONSTANT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + INPUT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + OUTPUT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + _OUTPUT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + IF reduce using rule 6 (statement -> DECLARE ids COLON ID .) + CASE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + FOR reduce using rule 6 (statement -> DECLARE ids COLON ID .) + REPEAT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + WHILE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + PROCEDURE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + CALL reduce using rule 6 (statement -> DECLARE ids COLON ID .) + FUNCTION reduce using rule 6 (statement -> DECLARE ids COLON ID .) + RETURN reduce using rule 6 (statement -> DECLARE ids COLON ID .) + OPENFILE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + READFILE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + WRITEFILE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + CLOSEFILE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + SEEK reduce using rule 6 (statement -> DECLARE ids COLON ID .) + TYPE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + PASS reduce using rule 6 (statement -> DECLARE ids COLON ID .) + IMPORT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + CLASS reduce using rule 6 (statement -> DECLARE ids COLON ID .) + LEFT_SQUARE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ID reduce using rule 6 (statement -> DECLARE ids COLON ID .) + NOT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + MINUS reduce using rule 6 (statement -> DECLARE ids COLON ID .) + PLUS reduce using rule 6 (statement -> DECLARE ids COLON ID .) + LEFT_PAREN reduce using rule 6 (statement -> DECLARE ids COLON ID .) + DATE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + BOOLEAN reduce using rule 6 (statement -> DECLARE ids COLON ID .) + CHAR reduce using rule 6 (statement -> DECLARE ids COLON ID .) + STRING reduce using rule 6 (statement -> DECLARE ids COLON ID .) + REAL reduce using rule 6 (statement -> DECLARE ids COLON ID .) + INTEGER reduce using rule 6 (statement -> DECLARE ids COLON ID .) + MOD reduce using rule 6 (statement -> DECLARE ids COLON ID .) + DIV reduce using rule 6 (statement -> DECLARE ids COLON ID .) + POINTER reduce using rule 6 (statement -> DECLARE ids COLON ID .) + NEW reduce using rule 6 (statement -> DECLARE ids COLON ID .) + $end reduce using rule 6 (statement -> DECLARE ids COLON ID .) + UNTIL reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ENDWHILE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ENDTYPE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ENDCLASS reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ELSE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ENDIF reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ENDPROCEDURE reduce using rule 6 (statement -> DECLARE ids COLON ID .) + SEMICOLON reduce using rule 6 (statement -> DECLARE ids COLON ID .) + NEXT reduce using rule 6 (statement -> DECLARE ids COLON ID .) + ENDFUNCTION reduce using rule 6 (statement -> DECLARE ids COLON ID .) + + +state 186 + + (8) ids -> ids COMMA ID . + + COLON reduce using rule 8 (ids -> ids COMMA ID .) + COMMA reduce using rule 8 (ids -> ids COMMA ID .) + + +state 187 (5) statement -> PUBLIC ID COLON ID . @@ -11630,684 +11821,805 @@ state 178 ENDFUNCTION reduce using rule 5 (statement -> PUBLIC ID COLON ID .) -state 179 +state 188 - (10) statement -> PUBLIC ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> PUBLIC ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - LEFT_SQUARE shift and go to state 238 + LEFT_SQUARE shift and go to state 249 -state 180 +state 189 - (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 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 210 + (7) statement -> PUBLIC ids COLON ID . + + DELETE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + DECLARE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + PUBLIC reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + PRIVATE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + CONSTANT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + INPUT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + OUTPUT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + _OUTPUT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + IF reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + CASE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + FOR reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + REPEAT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + WHILE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + PROCEDURE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + CALL reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + FUNCTION reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + RETURN reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + OPENFILE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + READFILE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + WRITEFILE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + CLOSEFILE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + SEEK reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + TYPE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + PASS reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + IMPORT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + CLASS reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + LEFT_SQUARE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ID reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + NOT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + MINUS reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + PLUS reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + LEFT_PAREN reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + DATE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + BOOLEAN reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + CHAR reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + STRING reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + REAL reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + INTEGER reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + MOD reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + DIV reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + POINTER reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + NEW reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + $end reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + UNTIL reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ENDWHILE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ENDTYPE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ENDCLASS reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ELSE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ENDIF reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ENDPROCEDURE reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + SEMICOLON reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + NEXT reduce using rule 7 (statement -> PUBLIC ids COLON ID .) + ENDFUNCTION reduce using rule 7 (statement -> PUBLIC ids COLON ID .) -state 181 - (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 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 210 +state 190 + + (92) statement -> PUBLIC PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> PUBLIC PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID -state 182 + RIGHT_PAREN shift and go to state 251 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 - (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 + declare_parameters shift and go to state 250 + declare_parameter shift and go to state 221 - 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 +state 191 - declare_parameters shift and go to state 243 - declare_parameter shift and go to state 210 + (93) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 253 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 252 + declare_parameter shift and go to state 221 -state 183 +state 192 - (6) statement -> PRIVATE ID COLON ID . - - DELETE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - DECLARE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - PUBLIC reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - PRIVATE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - CONSTANT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - INPUT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - OUTPUT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - _OUTPUT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - IF reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - CASE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - FOR reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - REPEAT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - WHILE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - PROCEDURE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - CALL reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - FUNCTION reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - RETURN reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - OPENFILE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - READFILE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - WRITEFILE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - CLOSEFILE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - SEEK reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - TYPE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - PASS reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - IMPORT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - CLASS reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - LEFT_SQUARE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ID reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - NOT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - MINUS reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - PLUS reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - LEFT_PAREN reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - DATE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - BOOLEAN reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - CHAR reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - STRING reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - REAL reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - INTEGER reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - MOD reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - DIV reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - POINTER reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - NEW reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - $end reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - UNTIL reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ENDWHILE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ENDTYPE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ENDCLASS reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ELSE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ENDIF reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ENDPROCEDURE reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - SEMICOLON reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - NEXT reduce using rule 6 (statement -> PRIVATE ID COLON ID .) - ENDFUNCTION reduce using rule 6 (statement -> PRIVATE ID COLON ID .) + (106) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> PUBLIC FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 255 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 254 + declare_parameter shift and go to state 221 +state 193 -state 184 + (10) statement -> PRIVATE ID COLON ID . + + DELETE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + DECLARE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + PUBLIC reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + PRIVATE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + CONSTANT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + INPUT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + OUTPUT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + _OUTPUT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + IF reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + CASE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + FOR reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + REPEAT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + WHILE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + PROCEDURE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + CALL reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + FUNCTION reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + RETURN reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + OPENFILE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + READFILE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + WRITEFILE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + CLOSEFILE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + SEEK reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + TYPE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + PASS reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + IMPORT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + CLASS reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + LEFT_SQUARE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ID reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + NOT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + MINUS reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + PLUS reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + LEFT_PAREN reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + DATE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + BOOLEAN reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + CHAR reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + STRING reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + REAL reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + INTEGER reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + MOD reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + DIV reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + POINTER reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + NEW reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + $end reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + UNTIL reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ENDWHILE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ENDTYPE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ENDCLASS reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ELSE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ENDIF reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ENDPROCEDURE reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + SEMICOLON reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + NEXT reduce using rule 10 (statement -> PRIVATE ID COLON ID .) + ENDFUNCTION reduce using rule 10 (statement -> PRIVATE ID COLON ID .) - (11) statement -> PRIVATE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID - LEFT_SQUARE shift and go to state 245 +state 194 + (16) statement -> PRIVATE ID COLON ARRAY . LEFT_SQUARE dimensions RIGHT_SQUARE OF ID -state 185 + LEFT_SQUARE shift and go to state 256 - (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 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 210 -state 186 +state 195 - (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 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 210 + (11) statement -> PRIVATE ids COLON ID . + + DELETE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + DECLARE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + PUBLIC reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + PRIVATE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + CONSTANT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + INPUT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + OUTPUT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + _OUTPUT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + IF reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + CASE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + FOR reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + REPEAT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + WHILE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + PROCEDURE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + CALL reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + FUNCTION reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + RETURN reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + OPENFILE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + READFILE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + WRITEFILE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + CLOSEFILE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + SEEK reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + TYPE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + PASS reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + IMPORT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + CLASS reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + LEFT_SQUARE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ID reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + NOT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + MINUS reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + PLUS reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + LEFT_PAREN reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + DATE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + BOOLEAN reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + CHAR reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + STRING reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + REAL reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + INTEGER reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + MOD reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + DIV reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + POINTER reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + NEW reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + $end reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + UNTIL reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ENDWHILE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ENDTYPE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ENDCLASS reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ELSE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ENDIF reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ENDPROCEDURE reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + SEMICOLON reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + NEXT reduce using rule 11 (statement -> PRIVATE ids COLON ID .) + ENDFUNCTION reduce using rule 11 (statement -> PRIVATE ids COLON ID .) -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 +state 196 - 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 + (96) statement -> PRIVATE PROCEDURE ID LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> PRIVATE PROCEDURE ID LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 258 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 257 + declare_parameter shift and go to state 221 - declare_parameters shift and go to state 250 - declare_parameter shift and go to state 210 +state 197 -state 188 + (97) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN . declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 260 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 259 + declare_parameter shift and go to state 221 - (7) statement -> CONSTANT ID 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 - - DELETE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - DECLARE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - PUBLIC reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - PRIVATE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - CONSTANT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - INPUT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - OUTPUT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - _OUTPUT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - IF reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - CASE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - FOR reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - REPEAT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - WHILE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - PROCEDURE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - CALL reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - FUNCTION reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - RETURN reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - OPENFILE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - READFILE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - WRITEFILE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - CLOSEFILE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - SEEK reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - TYPE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - PASS reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - IMPORT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - CLASS reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - LEFT_SQUARE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ID reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - NOT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - LEFT_PAREN reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - DATE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - BOOLEAN reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - CHAR reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - STRING reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - REAL reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - INTEGER reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - POINTER reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - NEW reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - $end reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - UNTIL reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ENDWHILE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ENDTYPE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ENDCLASS reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ELSE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ENDIF reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ENDPROCEDURE reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - SEMICOLON reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - NEXT reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) - ENDFUNCTION reduce using rule 7 (statement -> CONSTANT ID EQUAL 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 - - ! MINUS [ reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) ] - ! PLUS [ reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) ] - ! MOD [ reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) ] - ! DIV [ reduce using rule 7 (statement -> CONSTANT ID EQUAL expression .) ] - ! POINTER [ shift and go to state 75 ] +state 198 + (110) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION ID LEFT_PAREN . declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> PRIVATE FUNCTION ID LEFT_PAREN . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (75) declare_parameters -> . declare_parameters COMMA declare_parameter + (76) declare_parameters -> . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID + + RIGHT_PAREN shift and go to state 262 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 + + declare_parameters shift and go to state 261 + declare_parameter shift and go to state 221 -state 189 +state 199 + + (12) statement -> CONSTANT ID EQUAL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + DELETE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + DECLARE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + PUBLIC reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + PRIVATE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + CONSTANT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + INPUT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + OUTPUT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + _OUTPUT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + IF reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + CASE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + FOR reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + REPEAT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + WHILE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + PROCEDURE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + CALL reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + FUNCTION reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + RETURN reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + OPENFILE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + READFILE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + WRITEFILE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + CLOSEFILE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + SEEK reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + TYPE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + PASS reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + IMPORT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + CLASS reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + LEFT_SQUARE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ID reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + NOT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + LEFT_PAREN reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + DATE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + BOOLEAN reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + CHAR reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + STRING reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + REAL reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + INTEGER reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + POINTER reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + NEW reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + $end reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + UNTIL reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ENDWHILE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ENDTYPE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ENDCLASS reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ELSE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ENDIF reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ENDPROCEDURE reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + SEMICOLON reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + NEXT reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + ENDFUNCTION reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + + ! MINUS [ reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) ] + ! PLUS [ reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) ] + ! MOD [ reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) ] + ! DIV [ reduce using rule 12 (statement -> CONSTANT ID EQUAL expression .) ] + ! POINTER [ shift and go to state 78 ] + + +state 200 - (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 + (13) statement -> CONSTANT ID ASSIGN expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 .) ] + DELETE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + DECLARE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + PUBLIC reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + PRIVATE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + CONSTANT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + INPUT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + OUTPUT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + _OUTPUT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + IF reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + CASE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + FOR reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + REPEAT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + WHILE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + PROCEDURE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + CALL reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + FUNCTION reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + RETURN reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + OPENFILE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + READFILE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + WRITEFILE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + CLOSEFILE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + SEEK reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + TYPE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + PASS reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + IMPORT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + CLASS reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + LEFT_SQUARE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ID reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + NOT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + LEFT_PAREN reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + DATE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + BOOLEAN reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + CHAR reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + STRING reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + REAL reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + INTEGER reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + NEW reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + $end reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + UNTIL reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ENDWHILE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ENDTYPE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ENDCLASS reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ELSE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ENDIF reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ENDPROCEDURE reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + SEMICOLON reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + NEXT reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + ENDFUNCTION reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) ] + ! PLUS [ reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) ] + ! MOD [ reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) ] + ! DIV [ reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) ] + ! POINTER [ reduce using rule 13 (statement -> CONSTANT ID ASSIGN expression .) ] -state 190 +state 201 - (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 - 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 + (25) array_items -> array_items COMMA expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 25 (array_items -> array_items COMMA expression .) + COMMA reduce using rule 25 (array_items -> array_items COMMA expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 191 +state 202 - (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 + (30) output_expression -> output_expression COMMA expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 -> 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 - 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 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 .) ] + COMMA reduce using rule 30 (output_expression -> output_expression COMMA expression .) + DELETE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + DECLARE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + PUBLIC reduce using rule 30 (output_expression -> output_expression COMMA expression .) + PRIVATE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + CONSTANT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + INPUT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + OUTPUT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + _OUTPUT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + IF reduce using rule 30 (output_expression -> output_expression COMMA expression .) + CASE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + FOR reduce using rule 30 (output_expression -> output_expression COMMA expression .) + REPEAT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + WHILE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + PROCEDURE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + CALL reduce using rule 30 (output_expression -> output_expression COMMA expression .) + FUNCTION reduce using rule 30 (output_expression -> output_expression COMMA expression .) + RETURN reduce using rule 30 (output_expression -> output_expression COMMA expression .) + OPENFILE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + READFILE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + WRITEFILE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + CLOSEFILE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + SEEK reduce using rule 30 (output_expression -> output_expression COMMA expression .) + TYPE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + PASS reduce using rule 30 (output_expression -> output_expression COMMA expression .) + IMPORT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + CLASS reduce using rule 30 (output_expression -> output_expression COMMA expression .) + LEFT_SQUARE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ID reduce using rule 30 (output_expression -> output_expression COMMA expression .) + NOT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + LEFT_PAREN reduce using rule 30 (output_expression -> output_expression COMMA expression .) + DATE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + BOOLEAN reduce using rule 30 (output_expression -> output_expression COMMA expression .) + CHAR reduce using rule 30 (output_expression -> output_expression COMMA expression .) + STRING reduce using rule 30 (output_expression -> output_expression COMMA expression .) + REAL reduce using rule 30 (output_expression -> output_expression COMMA expression .) + INTEGER reduce using rule 30 (output_expression -> output_expression COMMA expression .) + NEW reduce using rule 30 (output_expression -> output_expression COMMA expression .) + $end reduce using rule 30 (output_expression -> output_expression COMMA expression .) + UNTIL reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ENDWHILE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ENDTYPE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ENDCLASS reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ELSE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ENDIF reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ENDPROCEDURE reduce using rule 30 (output_expression -> output_expression COMMA expression .) + SEMICOLON reduce using rule 30 (output_expression -> output_expression COMMA expression .) + NEXT reduce using rule 30 (output_expression -> output_expression COMMA expression .) + ENDFUNCTION reduce using rule 30 (output_expression -> output_expression COMMA expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 30 (output_expression -> output_expression COMMA expression .) ] + ! PLUS [ reduce using rule 30 (output_expression -> output_expression COMMA expression .) ] + ! MOD [ reduce using rule 30 (output_expression -> output_expression COMMA expression .) ] + ! DIV [ reduce using rule 30 (output_expression -> output_expression COMMA expression .) ] + ! POINTER [ reduce using rule 30 (output_expression -> output_expression COMMA expression .) ] -state 192 +state 203 - (27) statement -> IF expression THEN statements . ELSE statements ENDIF - (28) statement -> IF expression THEN statements . ENDIF + (32) statement -> IF expression THEN statements . ELSE statements ENDIF + (33) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ELSE shift and go to state 263 + ENDIF shift and go to state 264 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -12354,99 +12666,99 @@ state 192 expression shift and go to state 9 statement shift and go to state 46 -state 193 +state 204 - (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 - 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 + (39) case_expression -> expression . TO expression + (40) case_expression -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + TO shift and go to state 265 + COLON reduce using rule 40 (case_expression -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 194 +state 205 - (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 + (34) statement -> CASE OF expression cases . ENDCASE + (35) cases -> cases . case + (37) case -> . case_expression COLON statements SEMICOLON + (38) case -> . otherwise_statement SEMICOLON + (39) case_expression -> . expression TO expression + (40) case_expression -> . expression + (41) otherwise_statement -> . OTHERWISE COLON statements + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDCASE shift and go to state 266 + OTHERWISE shift and go to state 209 LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 NOT shift and go to state 35 @@ -12464,313 +12776,316 @@ state 194 POINTER shift and go to state 31 NEW shift and go to state 21 - 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 + expression shift and go to state 204 + case shift and go to state 267 + case_expression shift and go to state 207 + otherwise_statement shift and go to state 208 -state 195 +state 206 - (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 .) + (36) cases -> case . + + ENDCASE reduce using rule 36 (cases -> case .) + OTHERWISE reduce using rule 36 (cases -> case .) + LEFT_SQUARE reduce using rule 36 (cases -> case .) + ID reduce using rule 36 (cases -> case .) + NOT reduce using rule 36 (cases -> case .) + MINUS reduce using rule 36 (cases -> case .) + PLUS reduce using rule 36 (cases -> case .) + LEFT_PAREN reduce using rule 36 (cases -> case .) + DATE reduce using rule 36 (cases -> case .) + BOOLEAN reduce using rule 36 (cases -> case .) + CHAR reduce using rule 36 (cases -> case .) + STRING reduce using rule 36 (cases -> case .) + REAL reduce using rule 36 (cases -> case .) + INTEGER reduce using rule 36 (cases -> case .) + MOD reduce using rule 36 (cases -> case .) + DIV reduce using rule 36 (cases -> case .) + POINTER reduce using rule 36 (cases -> case .) + NEW reduce using rule 36 (cases -> case .) -state 196 +state 207 - (32) case -> case_expression . COLON statements SEMICOLON + (37) case -> case_expression . COLON statements SEMICOLON - COLON shift and go to state 257 + COLON shift and go to state 268 -state 197 +state 208 - (33) case -> otherwise_statement . SEMICOLON + (38) case -> otherwise_statement . SEMICOLON - SEMICOLON shift and go to state 258 + SEMICOLON shift and go to state 269 -state 198 +state 209 - (36) otherwise_statement -> OTHERWISE . COLON statements + (41) otherwise_statement -> OTHERWISE . COLON statements - COLON shift and go to state 259 + COLON shift and go to state 270 -state 199 +state 210 - (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 - 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 + (42) statement -> FOR ID ASSIGN expression . TO expression STEP expression statements NEXT ID + (43) statement -> FOR ID ASSIGN expression . TO expression statements NEXT ID + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + TO shift and go to state 271 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 200 +state 211 - (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 + (44) statement -> REPEAT statements UNTIL expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + DELETE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + DECLARE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + PUBLIC reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + PRIVATE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + CONSTANT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + INPUT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + OUTPUT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + _OUTPUT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + IF reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + CASE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + FOR reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + REPEAT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + WHILE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + PROCEDURE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + CALL reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + FUNCTION reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + RETURN reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + OPENFILE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + READFILE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + WRITEFILE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + CLOSEFILE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + SEEK reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + TYPE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + PASS reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + IMPORT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + CLASS reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + LEFT_SQUARE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ID reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + NOT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + LEFT_PAREN reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + DATE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + BOOLEAN reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + CHAR reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + STRING reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + REAL reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + INTEGER reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + NEW reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + $end reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + UNTIL reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ENDWHILE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ENDTYPE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ENDCLASS reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ELSE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ENDIF reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ENDPROCEDURE reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + SEMICOLON reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + NEXT reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + ENDFUNCTION reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) ] + ! PLUS [ reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) ] + ! MOD [ reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) ] + ! DIV [ reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) ] + ! POINTER [ reduce using rule 44 (statement -> REPEAT statements UNTIL expression .) ] -state 201 +state 212 - (40) statement -> WHILE expression DO statements . ENDWHILE + (45) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDWHILE shift and go to state 272 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -12817,109 +13132,109 @@ state 201 expression shift and go to state 9 statement shift and go to state 46 -state 202 +state 213 - (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 .) + (46) statement -> WHILE expression statements ENDWHILE . + + DELETE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + DECLARE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + PUBLIC reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + PRIVATE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + CONSTANT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + INPUT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + OUTPUT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + _OUTPUT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + IF reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + CASE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + FOR reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + REPEAT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + WHILE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + PROCEDURE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + CALL reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + FUNCTION reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + RETURN reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + OPENFILE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + READFILE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + WRITEFILE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + CLOSEFILE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + SEEK reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + TYPE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + PASS reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + IMPORT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + CLASS reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + LEFT_SQUARE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ID reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + NOT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + MINUS reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + PLUS reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + LEFT_PAREN reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + DATE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + BOOLEAN reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + CHAR reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + STRING reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + REAL reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + INTEGER reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + MOD reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + DIV reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + POINTER reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + NEW reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + $end reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + UNTIL reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ENDWHILE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ENDTYPE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ENDCLASS reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ELSE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ENDIF reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ENDPROCEDURE reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + SEMICOLON reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + NEXT reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) + ENDFUNCTION reduce using rule 46 (statement -> WHILE expression statements ENDWHILE .) -state 203 +state 214 - (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 + (121) expression -> MOD LEFT_PAREN . parameters RIGHT_PAREN + (68) expression -> LEFT_PAREN . expression RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -12938,53 +13253,53 @@ state 203 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 262 + parameters shift and go to state 177 + expression shift and go to state 273 -state 204 +state 215 - (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 + (122) expression -> DIV LEFT_PAREN . parameters RIGHT_PAREN + (68) expression -> LEFT_PAREN . expression RIGHT_PAREN + (86) parameters -> . parameters COMMA expression + (87) parameters -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -13003,566 +13318,569 @@ state 204 POINTER shift and go to state 31 NEW shift and go to state 21 - parameters shift and go to state 171 - expression shift and go to state 262 + parameters shift and go to state 178 + expression shift and go to state 273 -state 205 +state 216 - (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 ] - ! 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 ] + (65) expression -> expression PLUS expression . + (64) expression -> PLUS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ! reduce/reduce conflict for OR resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for AND resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for EQUAL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for NOT_EQUAL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for LESS resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for GREATER resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for LESS_EQUAL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for GREATER_EQUAL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for MOD resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for DIV resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for MUL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for N_DIV resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for PLUS resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for MINUS resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CONNECT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for DOT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for POINTER resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for DELETE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for DECLARE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for PUBLIC resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for PRIVATE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CONSTANT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for INPUT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for OUTPUT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for _OUTPUT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for IF resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CASE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for FOR resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for REPEAT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for WHILE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for PROCEDURE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CALL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for FUNCTION resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for RETURN resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for OPENFILE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for READFILE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for WRITEFILE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CLOSEFILE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for SEEK resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for TYPE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for PASS resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for IMPORT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CLASS resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for LEFT_SQUARE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for ID resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for NOT resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for LEFT_PAREN resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for DATE resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for BOOLEAN resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for CHAR resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for STRING resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for REAL resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for INTEGER resolved using rule 64 (expression -> PLUS expression .) + ! reduce/reduce conflict for NEW resolved using rule 64 (expression -> PLUS expression .) + DO reduce using rule 65 (expression -> expression PLUS expression .) + OTHERWISE reduce using rule 65 (expression -> expression PLUS expression .) + STEP reduce using rule 65 (expression -> expression PLUS expression .) + ASSIGN reduce using rule 64 (expression -> PLUS expression .) + OR reduce using rule 64 (expression -> PLUS expression .) + AND reduce using rule 64 (expression -> PLUS expression .) + EQUAL reduce using rule 64 (expression -> PLUS expression .) + NOT_EQUAL reduce using rule 64 (expression -> PLUS expression .) + LESS reduce using rule 64 (expression -> PLUS expression .) + GREATER reduce using rule 64 (expression -> PLUS expression .) + LESS_EQUAL reduce using rule 64 (expression -> PLUS expression .) + GREATER_EQUAL reduce using rule 64 (expression -> PLUS expression .) + MOD reduce using rule 64 (expression -> PLUS expression .) + DIV reduce using rule 64 (expression -> PLUS expression .) + MUL reduce using rule 64 (expression -> PLUS expression .) + N_DIV reduce using rule 64 (expression -> PLUS expression .) + PLUS reduce using rule 64 (expression -> PLUS expression .) + MINUS reduce using rule 64 (expression -> PLUS expression .) + CONNECT reduce using rule 64 (expression -> PLUS expression .) + DOT reduce using rule 64 (expression -> PLUS expression .) + POINTER reduce using rule 64 (expression -> PLUS expression .) + ENDWHILE reduce using rule 64 (expression -> PLUS expression .) + DELETE reduce using rule 64 (expression -> PLUS expression .) + DECLARE reduce using rule 64 (expression -> PLUS expression .) + PUBLIC reduce using rule 64 (expression -> PLUS expression .) + PRIVATE reduce using rule 64 (expression -> PLUS expression .) + CONSTANT reduce using rule 64 (expression -> PLUS expression .) + INPUT reduce using rule 64 (expression -> PLUS expression .) + OUTPUT reduce using rule 64 (expression -> PLUS expression .) + _OUTPUT reduce using rule 64 (expression -> PLUS expression .) + IF reduce using rule 64 (expression -> PLUS expression .) + CASE reduce using rule 64 (expression -> PLUS expression .) + FOR reduce using rule 64 (expression -> PLUS expression .) + REPEAT reduce using rule 64 (expression -> PLUS expression .) + WHILE reduce using rule 64 (expression -> PLUS expression .) + PROCEDURE reduce using rule 64 (expression -> PLUS expression .) + CALL reduce using rule 64 (expression -> PLUS expression .) + FUNCTION reduce using rule 64 (expression -> PLUS expression .) + RETURN reduce using rule 64 (expression -> PLUS expression .) + OPENFILE reduce using rule 64 (expression -> PLUS expression .) + READFILE reduce using rule 64 (expression -> PLUS expression .) + WRITEFILE reduce using rule 64 (expression -> PLUS expression .) + CLOSEFILE reduce using rule 64 (expression -> PLUS expression .) + SEEK reduce using rule 64 (expression -> PLUS expression .) + TYPE reduce using rule 64 (expression -> PLUS expression .) + PASS reduce using rule 64 (expression -> PLUS expression .) + IMPORT reduce using rule 64 (expression -> PLUS expression .) + CLASS reduce using rule 64 (expression -> PLUS expression .) + LEFT_SQUARE reduce using rule 64 (expression -> PLUS expression .) + ID reduce using rule 64 (expression -> PLUS expression .) + NOT reduce using rule 64 (expression -> PLUS expression .) + LEFT_PAREN reduce using rule 64 (expression -> PLUS expression .) + DATE reduce using rule 64 (expression -> PLUS expression .) + BOOLEAN reduce using rule 64 (expression -> PLUS expression .) + CHAR reduce using rule 64 (expression -> PLUS expression .) + STRING reduce using rule 64 (expression -> PLUS expression .) + REAL reduce using rule 64 (expression -> PLUS expression .) + INTEGER reduce using rule 64 (expression -> PLUS expression .) + NEW reduce using rule 64 (expression -> PLUS expression .) + TO reduce using rule 64 (expression -> PLUS expression .) + COLON reduce using rule 64 (expression -> PLUS expression .) + NEXT reduce using rule 64 (expression -> PLUS expression .) + + ! OR [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! AND [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! EQUAL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! NOT_EQUAL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! LESS [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! GREATER [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! LESS_EQUAL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! GREATER_EQUAL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! MOD [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! DIV [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! MUL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! N_DIV [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! PLUS [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! MINUS [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CONNECT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! DOT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! POINTER [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! DELETE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! DECLARE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! PUBLIC [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! PRIVATE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CONSTANT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! INPUT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! OUTPUT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! _OUTPUT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! IF [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CASE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! FOR [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! REPEAT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! WHILE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! PROCEDURE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CALL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! FUNCTION [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! RETURN [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! OPENFILE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! READFILE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! WRITEFILE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CLOSEFILE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! SEEK [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! TYPE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! PASS [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! IMPORT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CLASS [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! LEFT_SQUARE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! ID [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! NOT [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! LEFT_PAREN [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! DATE [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! BOOLEAN [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! CHAR [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! STRING [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! REAL [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! INTEGER [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! NEW [ reduce using rule 65 (expression -> expression PLUS expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 206 +state 217 - (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 ] - ! 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 ] + (66) expression -> expression MINUS expression . + (63) expression -> MINUS expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + ! reduce/reduce conflict for OR resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for AND resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for EQUAL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for NOT_EQUAL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for LESS resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for GREATER resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for LESS_EQUAL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for GREATER_EQUAL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for MOD resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for DIV resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for MUL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for N_DIV resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for PLUS resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for MINUS resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CONNECT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for DOT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for POINTER resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for DELETE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for DECLARE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for PUBLIC resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for PRIVATE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CONSTANT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for INPUT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for OUTPUT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for _OUTPUT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for IF resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CASE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for FOR resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for REPEAT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for WHILE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for PROCEDURE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CALL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for FUNCTION resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for RETURN resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for OPENFILE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for READFILE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for WRITEFILE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CLOSEFILE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for SEEK resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for TYPE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for PASS resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for IMPORT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CLASS resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for LEFT_SQUARE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for ID resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for NOT resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for LEFT_PAREN resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for DATE resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for BOOLEAN resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for CHAR resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for STRING resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for REAL resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for INTEGER resolved using rule 63 (expression -> MINUS expression .) + ! reduce/reduce conflict for NEW resolved using rule 63 (expression -> MINUS expression .) + DO reduce using rule 66 (expression -> expression MINUS expression .) + OTHERWISE reduce using rule 66 (expression -> expression MINUS expression .) + STEP reduce using rule 66 (expression -> expression MINUS expression .) + ASSIGN reduce using rule 63 (expression -> MINUS expression .) + OR reduce using rule 63 (expression -> MINUS expression .) + AND reduce using rule 63 (expression -> MINUS expression .) + EQUAL reduce using rule 63 (expression -> MINUS expression .) + NOT_EQUAL reduce using rule 63 (expression -> MINUS expression .) + LESS reduce using rule 63 (expression -> MINUS expression .) + GREATER reduce using rule 63 (expression -> MINUS expression .) + LESS_EQUAL reduce using rule 63 (expression -> MINUS expression .) + GREATER_EQUAL reduce using rule 63 (expression -> MINUS expression .) + MOD reduce using rule 63 (expression -> MINUS expression .) + DIV reduce using rule 63 (expression -> MINUS expression .) + MUL reduce using rule 63 (expression -> MINUS expression .) + N_DIV reduce using rule 63 (expression -> MINUS expression .) + PLUS reduce using rule 63 (expression -> MINUS expression .) + MINUS reduce using rule 63 (expression -> MINUS expression .) + CONNECT reduce using rule 63 (expression -> MINUS expression .) + DOT reduce using rule 63 (expression -> MINUS expression .) + POINTER reduce using rule 63 (expression -> MINUS expression .) + ENDWHILE reduce using rule 63 (expression -> MINUS expression .) + DELETE reduce using rule 63 (expression -> MINUS expression .) + DECLARE reduce using rule 63 (expression -> MINUS expression .) + PUBLIC reduce using rule 63 (expression -> MINUS expression .) + PRIVATE reduce using rule 63 (expression -> MINUS expression .) + CONSTANT reduce using rule 63 (expression -> MINUS expression .) + INPUT reduce using rule 63 (expression -> MINUS expression .) + OUTPUT reduce using rule 63 (expression -> MINUS expression .) + _OUTPUT reduce using rule 63 (expression -> MINUS expression .) + IF reduce using rule 63 (expression -> MINUS expression .) + CASE reduce using rule 63 (expression -> MINUS expression .) + FOR reduce using rule 63 (expression -> MINUS expression .) + REPEAT reduce using rule 63 (expression -> MINUS expression .) + WHILE reduce using rule 63 (expression -> MINUS expression .) + PROCEDURE reduce using rule 63 (expression -> MINUS expression .) + CALL reduce using rule 63 (expression -> MINUS expression .) + FUNCTION reduce using rule 63 (expression -> MINUS expression .) + RETURN reduce using rule 63 (expression -> MINUS expression .) + OPENFILE reduce using rule 63 (expression -> MINUS expression .) + READFILE reduce using rule 63 (expression -> MINUS expression .) + WRITEFILE reduce using rule 63 (expression -> MINUS expression .) + CLOSEFILE reduce using rule 63 (expression -> MINUS expression .) + SEEK reduce using rule 63 (expression -> MINUS expression .) + TYPE reduce using rule 63 (expression -> MINUS expression .) + PASS reduce using rule 63 (expression -> MINUS expression .) + IMPORT reduce using rule 63 (expression -> MINUS expression .) + CLASS reduce using rule 63 (expression -> MINUS expression .) + LEFT_SQUARE reduce using rule 63 (expression -> MINUS expression .) + ID reduce using rule 63 (expression -> MINUS expression .) + NOT reduce using rule 63 (expression -> MINUS expression .) + LEFT_PAREN reduce using rule 63 (expression -> MINUS expression .) + DATE reduce using rule 63 (expression -> MINUS expression .) + BOOLEAN reduce using rule 63 (expression -> MINUS expression .) + CHAR reduce using rule 63 (expression -> MINUS expression .) + STRING reduce using rule 63 (expression -> MINUS expression .) + REAL reduce using rule 63 (expression -> MINUS expression .) + INTEGER reduce using rule 63 (expression -> MINUS expression .) + NEW reduce using rule 63 (expression -> MINUS expression .) + TO reduce using rule 63 (expression -> MINUS expression .) + COLON reduce using rule 63 (expression -> MINUS expression .) + NEXT reduce using rule 63 (expression -> MINUS expression .) + + ! OR [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! AND [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! EQUAL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! NOT_EQUAL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! LESS [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! GREATER [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! LESS_EQUAL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! GREATER_EQUAL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! MOD [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! DIV [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! MUL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! N_DIV [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! PLUS [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! MINUS [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CONNECT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! DOT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! POINTER [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! DELETE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! DECLARE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! PUBLIC [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! PRIVATE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CONSTANT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! INPUT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! OUTPUT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! _OUTPUT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! IF [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CASE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! FOR [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! REPEAT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! WHILE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! PROCEDURE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CALL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! FUNCTION [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! RETURN [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! OPENFILE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! READFILE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! WRITEFILE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CLOSEFILE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! SEEK [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! TYPE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! PASS [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! IMPORT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CLASS [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! LEFT_SQUARE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! ID [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! NOT [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! LEFT_PAREN [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! DATE [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! BOOLEAN [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! CHAR [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! STRING [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! REAL [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! INTEGER [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! NEW [ reduce using rule 66 (expression -> expression MINUS expression .) ] + ! OR [ shift and go to state 62 ] + ! AND [ shift and go to state 63 ] + ! EQUAL [ shift and go to state 64 ] + ! NOT_EQUAL [ shift and go to state 65 ] + ! LESS [ shift and go to state 66 ] + ! GREATER [ shift and go to state 67 ] + ! LESS_EQUAL [ shift and go to state 68 ] + ! GREATER_EQUAL [ shift and go to state 69 ] + ! MOD [ shift and go to state 70 ] + ! DIV [ shift and go to state 71 ] + ! MUL [ shift and go to state 72 ] + ! N_DIV [ shift and go to state 73 ] + ! PLUS [ shift and go to state 74 ] + ! MINUS [ shift and go to state 75 ] + ! CONNECT [ shift and go to state 76 ] + ! DOT [ shift and go to state 77 ] + ! POINTER [ shift and go to state 78 ] -state 207 +state 218 - (72) declare_parameter -> ID . COLON ID - (73) declare_parameter -> ID . COLON ARRAY - (78) declare_parameter -> ID . COLON ARRAY OF ID + (77) declare_parameter -> ID . COLON ID + (78) declare_parameter -> ID . COLON ARRAY + (83) declare_parameter -> ID . COLON ARRAY OF ID - COLON shift and go to state 263 + COLON shift and go to state 274 -state 208 +state 219 - (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (70) declare_parameters -> declare_parameters . COMMA declare_parameter + (88) statement -> PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 264 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 275 + COMMA shift and go to state 276 -state 209 +state 220 - (85) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (90) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -13607,160 +13925,163 @@ state 209 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 266 + statements shift and go to state 277 statement shift and go to state 2 expression shift and go to state 9 -state 210 +state 221 - (71) declare_parameters -> declare_parameter . + (76) declare_parameters -> declare_parameter . - RIGHT_PAREN reduce using rule 71 (declare_parameters -> declare_parameter .) - COMMA reduce using rule 71 (declare_parameters -> declare_parameter .) + RIGHT_PAREN reduce using rule 76 (declare_parameters -> declare_parameter .) + COMMA reduce using rule 76 (declare_parameters -> declare_parameter .) -state 211 +state 222 - (74) declare_parameter -> BYREF . ID COLON ID - (75) declare_parameter -> BYREF . ID COLON ARRAY - (79) declare_parameter -> BYREF . ID COLON ARRAY OF ID + (79) declare_parameter -> BYREF . ID COLON ID + (80) declare_parameter -> BYREF . ID COLON ARRAY + (84) declare_parameter -> BYREF . ID COLON ARRAY OF ID - ID shift and go to state 267 + ID shift and go to state 278 -state 212 +state 223 - (76) declare_parameter -> BYVAL . ID COLON ID - (77) declare_parameter -> BYVAL . ID COLON ARRAY - (80) declare_parameter -> BYVAL . ID COLON ARRAY OF ID + (81) declare_parameter -> BYVAL . ID COLON ID + (82) declare_parameter -> BYVAL . ID COLON ARRAY + (85) declare_parameter -> BYVAL . ID COLON ARRAY OF ID - ID shift and go to state 268 + ID shift and go to state 279 -state 213 +state 224 - (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (70) declare_parameters -> declare_parameters . COMMA declare_parameter + (89) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 269 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 280 + COMMA shift and go to state 276 -state 214 +state 225 - (86) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (91) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -13805,861 +14126,864 @@ state 214 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 270 + statements shift and go to state 281 statement shift and go to state 2 expression shift and go to state 9 -state 215 +state 226 - (142) expression -> NEW ID LEFT_PAREN parameters . RIGHT_PAREN - (81) parameters -> parameters . COMMA expression + (147) expression -> NEW ID LEFT_PAREN parameters . RIGHT_PAREN + (86) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 271 - COMMA shift and go to state 175 + RIGHT_PAREN shift and go to state 282 + COMMA shift and go to state 182 -state 216 +state 227 - (95) statement -> CALL ID LEFT_PAREN parameters . RIGHT_PAREN - (81) parameters -> parameters . COMMA expression + (100) statement -> CALL ID LEFT_PAREN parameters . RIGHT_PAREN + (86) parameters -> parameters . COMMA expression - RIGHT_PAREN shift and go to state 272 - COMMA shift and go to state 175 + RIGHT_PAREN shift and go to state 283 + COMMA shift and go to state 182 -state 217 +state 228 - (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 .) + (101) statement -> CALL ID LEFT_PAREN RIGHT_PAREN . + + DELETE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + DECLARE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PUBLIC reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PRIVATE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CONSTANT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + INPUT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + OUTPUT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + _OUTPUT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + IF reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CASE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + FOR reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + REPEAT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + WHILE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PROCEDURE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CALL reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + FUNCTION reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + RETURN reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + OPENFILE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + READFILE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + WRITEFILE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CLOSEFILE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + SEEK reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + TYPE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PASS reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + IMPORT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CLASS reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ID reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + NOT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + MINUS reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + PLUS reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + LEFT_PAREN reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + DATE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + BOOLEAN reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + CHAR reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + STRING reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + REAL reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + INTEGER reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + MOD reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + DIV reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + POINTER reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + NEW reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + $end reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + UNTIL reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDWHILE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDTYPE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDCLASS reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ELSE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDIF reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + SEMICOLON reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + NEXT reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) + ENDFUNCTION reduce using rule 101 (statement -> CALL ID LEFT_PAREN RIGHT_PAREN .) -state 218 +state 229 - (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 + (102) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 273 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 284 + COMMA shift and go to state 276 -state 219 +state 230 - (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 + (104) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (105) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (115) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 274 + RETURNS shift and go to state 285 -state 220 +state 231 - (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 .) + (125) statement -> OPENFILE expression FOR READ . + + DELETE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + DECLARE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + PUBLIC reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + PRIVATE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + CONSTANT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + INPUT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + OUTPUT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + _OUTPUT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + IF reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + CASE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + FOR reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + REPEAT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + WHILE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + PROCEDURE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + CALL reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + FUNCTION reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + RETURN reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + OPENFILE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + READFILE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + WRITEFILE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + CLOSEFILE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + SEEK reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + TYPE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + PASS reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + IMPORT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + CLASS reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + LEFT_SQUARE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ID reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + NOT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + MINUS reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + PLUS reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + LEFT_PAREN reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + DATE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + BOOLEAN reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + CHAR reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + STRING reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + REAL reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + INTEGER reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + MOD reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + DIV reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + POINTER reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + NEW reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + $end reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + UNTIL reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ENDWHILE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ENDTYPE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ENDCLASS reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ELSE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ENDIF reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ENDPROCEDURE reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + SEMICOLON reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + NEXT reduce using rule 125 (statement -> OPENFILE expression FOR READ .) + ENDFUNCTION reduce using rule 125 (statement -> OPENFILE expression FOR READ .) -state 221 +state 232 - (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 .) + (126) statement -> OPENFILE expression FOR WRITE . + + DELETE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + DECLARE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + PUBLIC reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + PRIVATE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + CONSTANT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + INPUT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + OUTPUT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + _OUTPUT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + IF reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + CASE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + FOR reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + REPEAT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + WHILE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + PROCEDURE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + CALL reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + FUNCTION reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + RETURN reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + OPENFILE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + READFILE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + WRITEFILE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + CLOSEFILE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + SEEK reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + TYPE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + PASS reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + IMPORT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + CLASS reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + LEFT_SQUARE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ID reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + NOT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + MINUS reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + PLUS reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + LEFT_PAREN reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + DATE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + BOOLEAN reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + CHAR reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + STRING reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + REAL reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + INTEGER reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + MOD reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + DIV reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + POINTER reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + NEW reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + $end reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + UNTIL reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ENDWHILE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ENDTYPE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ENDCLASS reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ELSE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ENDIF reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ENDPROCEDURE reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + SEMICOLON reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + NEXT reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) + ENDFUNCTION reduce using rule 126 (statement -> OPENFILE expression FOR WRITE .) -state 222 +state 233 - (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 .) + (127) statement -> OPENFILE expression FOR APPEND . + + DELETE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + DECLARE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + PUBLIC reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + PRIVATE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + CONSTANT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + INPUT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + OUTPUT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + _OUTPUT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + IF reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + CASE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + FOR reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + REPEAT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + WHILE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + PROCEDURE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + CALL reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + FUNCTION reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + RETURN reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + OPENFILE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + READFILE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + WRITEFILE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + CLOSEFILE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + SEEK reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + TYPE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + PASS reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + IMPORT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + CLASS reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + LEFT_SQUARE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ID reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + NOT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + MINUS reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + PLUS reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + LEFT_PAREN reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + DATE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + BOOLEAN reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + CHAR reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + STRING reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + REAL reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + INTEGER reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + MOD reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + DIV reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + POINTER reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + NEW reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + $end reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + UNTIL reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ENDWHILE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ENDTYPE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ENDCLASS reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ELSE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ENDIF reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ENDPROCEDURE reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + SEMICOLON reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + NEXT reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) + ENDFUNCTION reduce using rule 127 (statement -> OPENFILE expression FOR APPEND .) -state 223 +state 234 - (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 .) + (128) statement -> OPENFILE expression FOR RANDOM . + + DELETE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + DECLARE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + PUBLIC reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + PRIVATE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + CONSTANT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + INPUT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + OUTPUT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + _OUTPUT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + IF reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + CASE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + FOR reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + REPEAT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + WHILE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + PROCEDURE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + CALL reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + FUNCTION reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + RETURN reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + OPENFILE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + READFILE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + WRITEFILE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + CLOSEFILE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + SEEK reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + TYPE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + PASS reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + IMPORT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + CLASS reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + LEFT_SQUARE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ID reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + NOT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + MINUS reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + PLUS reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + LEFT_PAREN reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + DATE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + BOOLEAN reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + CHAR reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + STRING reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + REAL reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + INTEGER reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + MOD reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + DIV reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + POINTER reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + NEW reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + $end reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + UNTIL reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ENDWHILE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ENDTYPE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ENDCLASS reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ELSE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ENDIF reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ENDPROCEDURE reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + SEMICOLON reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + NEXT reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) + ENDFUNCTION reduce using rule 128 (statement -> OPENFILE expression FOR RANDOM .) -state 224 +state 235 - (124) statement -> READFILE expression COMMA ID . LEFT_SQUARE indexes RIGHT_SQUARE - (125) statement -> READFILE expression COMMA ID . + (129) statement -> READFILE expression COMMA ID . LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> READFILE expression COMMA ID . ! shift/reduce conflict for LEFT_SQUARE resolved as shift - 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 .) ] + LEFT_SQUARE shift and go to state 286 + DELETE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + DECLARE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + PUBLIC reduce using rule 130 (statement -> READFILE expression COMMA ID .) + PRIVATE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + CONSTANT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + INPUT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + OUTPUT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + _OUTPUT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + IF reduce using rule 130 (statement -> READFILE expression COMMA ID .) + CASE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + FOR reduce using rule 130 (statement -> READFILE expression COMMA ID .) + REPEAT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + WHILE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + PROCEDURE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + CALL reduce using rule 130 (statement -> READFILE expression COMMA ID .) + FUNCTION reduce using rule 130 (statement -> READFILE expression COMMA ID .) + RETURN reduce using rule 130 (statement -> READFILE expression COMMA ID .) + OPENFILE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + READFILE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + WRITEFILE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + CLOSEFILE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + SEEK reduce using rule 130 (statement -> READFILE expression COMMA ID .) + TYPE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + PASS reduce using rule 130 (statement -> READFILE expression COMMA ID .) + IMPORT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + CLASS reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ID reduce using rule 130 (statement -> READFILE expression COMMA ID .) + NOT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + MINUS reduce using rule 130 (statement -> READFILE expression COMMA ID .) + PLUS reduce using rule 130 (statement -> READFILE expression COMMA ID .) + LEFT_PAREN reduce using rule 130 (statement -> READFILE expression COMMA ID .) + DATE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + BOOLEAN reduce using rule 130 (statement -> READFILE expression COMMA ID .) + CHAR reduce using rule 130 (statement -> READFILE expression COMMA ID .) + STRING reduce using rule 130 (statement -> READFILE expression COMMA ID .) + REAL reduce using rule 130 (statement -> READFILE expression COMMA ID .) + INTEGER reduce using rule 130 (statement -> READFILE expression COMMA ID .) + MOD reduce using rule 130 (statement -> READFILE expression COMMA ID .) + DIV reduce using rule 130 (statement -> READFILE expression COMMA ID .) + POINTER reduce using rule 130 (statement -> READFILE expression COMMA ID .) + NEW reduce using rule 130 (statement -> READFILE expression COMMA ID .) + $end reduce using rule 130 (statement -> READFILE expression COMMA ID .) + UNTIL reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ENDWHILE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ENDTYPE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ENDCLASS reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ELSE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ENDIF reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ENDPROCEDURE reduce using rule 130 (statement -> READFILE expression COMMA ID .) + SEMICOLON reduce using rule 130 (statement -> READFILE expression COMMA ID .) + NEXT reduce using rule 130 (statement -> READFILE expression COMMA ID .) + ENDFUNCTION reduce using rule 130 (statement -> READFILE expression COMMA ID .) + + ! LEFT_SQUARE [ reduce using rule 130 (statement -> READFILE expression COMMA ID .) ] -state 225 +state 236 - (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 + (131) statement -> WRITEFILE expression COMMA expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 -> 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 - 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 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 .) ] + DELETE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + DECLARE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + PUBLIC reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + PRIVATE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + CONSTANT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + INPUT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + OUTPUT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + _OUTPUT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + IF reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + CASE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + FOR reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + REPEAT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + WHILE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + PROCEDURE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + CALL reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + FUNCTION reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + RETURN reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + OPENFILE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + READFILE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + WRITEFILE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + CLOSEFILE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + SEEK reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + TYPE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + PASS reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + IMPORT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + CLASS reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + LEFT_SQUARE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ID reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + NOT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + LEFT_PAREN reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + DATE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + BOOLEAN reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + CHAR reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + STRING reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + REAL reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + INTEGER reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + NEW reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + $end reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + UNTIL reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ENDWHILE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ENDTYPE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ENDCLASS reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ELSE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ENDIF reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ENDPROCEDURE reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + SEMICOLON reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + NEXT reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + ENDFUNCTION reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) ] + ! PLUS [ reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) ] + ! MOD [ reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) ] + ! DIV [ reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) ] + ! POINTER [ reduce using rule 131 (statement -> WRITEFILE expression COMMA expression .) ] -state 226 +state 237 - (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 + (133) statement -> SEEK expression COMMA expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) 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 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 - 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 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 .) ] + DELETE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + DECLARE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + PUBLIC reduce using rule 133 (statement -> SEEK expression COMMA expression .) + PRIVATE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + CONSTANT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + INPUT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + OUTPUT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + _OUTPUT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + IF reduce using rule 133 (statement -> SEEK expression COMMA expression .) + CASE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + FOR reduce using rule 133 (statement -> SEEK expression COMMA expression .) + REPEAT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + WHILE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + PROCEDURE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + CALL reduce using rule 133 (statement -> SEEK expression COMMA expression .) + FUNCTION reduce using rule 133 (statement -> SEEK expression COMMA expression .) + RETURN reduce using rule 133 (statement -> SEEK expression COMMA expression .) + OPENFILE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + READFILE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + WRITEFILE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + CLOSEFILE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + SEEK reduce using rule 133 (statement -> SEEK expression COMMA expression .) + TYPE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + PASS reduce using rule 133 (statement -> SEEK expression COMMA expression .) + IMPORT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + CLASS reduce using rule 133 (statement -> SEEK expression COMMA expression .) + LEFT_SQUARE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ID reduce using rule 133 (statement -> SEEK expression COMMA expression .) + NOT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + LEFT_PAREN reduce using rule 133 (statement -> SEEK expression COMMA expression .) + DATE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + BOOLEAN reduce using rule 133 (statement -> SEEK expression COMMA expression .) + CHAR reduce using rule 133 (statement -> SEEK expression COMMA expression .) + STRING reduce using rule 133 (statement -> SEEK expression COMMA expression .) + REAL reduce using rule 133 (statement -> SEEK expression COMMA expression .) + INTEGER reduce using rule 133 (statement -> SEEK expression COMMA expression .) + NEW reduce using rule 133 (statement -> SEEK expression COMMA expression .) + $end reduce using rule 133 (statement -> SEEK expression COMMA expression .) + UNTIL reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ENDWHILE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ENDTYPE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ENDCLASS reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ELSE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ENDIF reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ENDPROCEDURE reduce using rule 133 (statement -> SEEK expression COMMA expression .) + SEMICOLON reduce using rule 133 (statement -> SEEK expression COMMA expression .) + NEXT reduce using rule 133 (statement -> SEEK expression COMMA expression .) + ENDFUNCTION reduce using rule 133 (statement -> SEEK expression COMMA expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! MINUS [ reduce using rule 133 (statement -> SEEK expression COMMA expression .) ] + ! PLUS [ reduce using rule 133 (statement -> SEEK expression COMMA expression .) ] + ! MOD [ reduce using rule 133 (statement -> SEEK expression COMMA expression .) ] + ! DIV [ reduce using rule 133 (statement -> SEEK expression COMMA expression .) ] + ! POINTER [ reduce using rule 133 (statement -> SEEK expression COMMA expression .) ] -state 227 +state 238 - (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 .) + (134) statement -> TYPE ID statements ENDTYPE . + + DELETE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + DECLARE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + PUBLIC reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + PRIVATE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + CONSTANT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + INPUT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + OUTPUT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + _OUTPUT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + IF reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + CASE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + FOR reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + REPEAT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + WHILE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + PROCEDURE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + CALL reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + FUNCTION reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + RETURN reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + OPENFILE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + READFILE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + WRITEFILE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + CLOSEFILE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + SEEK reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + TYPE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + PASS reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + IMPORT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + CLASS reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + LEFT_SQUARE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ID reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + NOT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + MINUS reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + PLUS reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + LEFT_PAREN reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + DATE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + BOOLEAN reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + CHAR reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + STRING reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + REAL reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + INTEGER reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + MOD reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + DIV reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + POINTER reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + NEW reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + $end reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + UNTIL reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ENDWHILE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ENDTYPE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ENDCLASS reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ELSE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ENDIF reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ENDPROCEDURE reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + SEMICOLON reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + NEXT reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) + ENDFUNCTION reduce using rule 134 (statement -> TYPE ID statements ENDTYPE .) -state 228 +state 239 - (131) statement -> TYPE ID EQUAL LEFT_PAREN . enumerate_items RIGHT_PAREN - (132) enumerate_items -> . enumerate_items COMMA ID - (133) enumerate_items -> . ID + (136) statement -> TYPE ID EQUAL LEFT_PAREN . enumerate_items RIGHT_PAREN + (137) enumerate_items -> . enumerate_items COMMA ID + (138) enumerate_items -> . ID - ID shift and go to state 276 + ID shift and go to state 287 - enumerate_items shift and go to state 277 + enumerate_items shift and go to state 288 -state 229 +state 240 - (136) statement -> TYPE ID EQUAL POINTER . ID + (141) statement -> TYPE ID EQUAL POINTER . ID - ID shift and go to state 278 + ID shift and go to state 289 -state 230 +state 241 - (143) statement -> TYPE ID EQUAL SET . OF ID + (148) statement -> TYPE ID EQUAL SET . OF ID - OF shift and go to state 279 + OF shift and go to state 290 -state 231 +state 242 - (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 .) + (144) statement -> CLASS ID statements ENDCLASS . + + DELETE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + DECLARE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + PUBLIC reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + PRIVATE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + CONSTANT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + INPUT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + OUTPUT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + _OUTPUT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + IF reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + CASE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + FOR reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + REPEAT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + WHILE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + PROCEDURE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + CALL reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + FUNCTION reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + RETURN reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + OPENFILE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + READFILE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + WRITEFILE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + CLOSEFILE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + SEEK reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + TYPE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + PASS reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + IMPORT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + CLASS reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + LEFT_SQUARE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ID reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + NOT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + MINUS reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + PLUS reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + LEFT_PAREN reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + DATE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + BOOLEAN reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + CHAR reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + STRING reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + REAL reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + INTEGER reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + MOD reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + DIV reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + POINTER reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + NEW reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + $end reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + UNTIL reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ENDWHILE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ENDTYPE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ENDCLASS reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ELSE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ENDIF reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ENDPROCEDURE reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + SEMICOLON reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + NEXT reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) + ENDFUNCTION reduce using rule 144 (statement -> CLASS ID statements ENDCLASS .) -state 232 +state 243 - (140) statement -> CLASS ID INHERITS ID . statements ENDCLASS + (145) statement -> CLASS ID INHERITS ID . statements ENDCLASS (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -14704,300 +15028,300 @@ state 232 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 280 + statements shift and go to state 291 statement shift and go to state 2 expression shift and go to state 9 -state 233 +state 244 - (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 .) + (121) expression -> MOD LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 121 (expression -> MOD LEFT_PAREN parameters RIGHT_PAREN .) -state 234 +state 245 - (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 .) + (122) expression -> DIV LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 122 (expression -> DIV LEFT_PAREN parameters RIGHT_PAREN .) -state 235 +state 246 - (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 - 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 + (21) indexes -> indexes COMMA expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 21 (indexes -> indexes COMMA expression .) + COMMA reduce using rule 21 (indexes -> indexes COMMA expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 236 +state 247 - (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 - 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 + (86) parameters -> parameters COMMA expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_PAREN reduce using rule 86 (parameters -> parameters COMMA expression .) + COMMA reduce using rule 86 (parameters -> parameters COMMA expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 237 +state 248 - (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 + (14) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID + (17) dimensions -> . dimensions COMMA dimension + (18) dimensions -> . dimension + (19) dimension -> . expression COLON expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -15016,54 +15340,54 @@ state 237 POINTER shift and go to state 31 NEW shift and go to state 21 - dimensions shift and go to state 281 - dimension shift and go to state 282 - expression shift and go to state 283 + dimensions shift and go to state 292 + dimension shift and go to state 293 + expression shift and go to state 294 -state 238 +state 249 - (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 + (15) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID + (17) dimensions -> . dimensions COMMA dimension + (18) dimensions -> . dimension + (19) dimension -> . expression COLON expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -15082,134 +15406,137 @@ state 238 POINTER shift and go to state 31 NEW shift and go to state 21 - dimensions shift and go to state 284 - dimension shift and go to state 282 - expression shift and go to state 283 + dimensions shift and go to state 295 + dimension shift and go to state 293 + expression shift and go to state 294 -state 239 +state 250 - (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (70) declare_parameters -> declare_parameters . COMMA declare_parameter + (92) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 285 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 296 + COMMA shift and go to state 276 -state 240 +state 251 - (89) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (94) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15254,134 +15581,137 @@ 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 297 statement shift and go to state 2 expression shift and go to state 9 -state 241 +state 252 - (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (70) declare_parameters -> declare_parameters . COMMA declare_parameter + (93) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 287 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 298 + COMMA shift and go to state 276 -state 242 +state 253 - (90) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (95) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15426,74 +15756,74 @@ state 242 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 288 + statements shift and go to state 299 statement shift and go to state 2 expression shift and go to state 9 -state 243 +state 254 - (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 + (106) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 289 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 300 + COMMA shift and go to state 276 -state 244 +state 255 - (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 + (108) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (109) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (117) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 290 + RETURNS shift and go to state 301 -state 245 +state 256 - (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 + (16) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE . dimensions RIGHT_SQUARE OF ID + (17) dimensions -> . dimensions COMMA dimension + (18) dimensions -> . dimension + (19) dimension -> . expression COLON expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -15512,134 +15842,137 @@ state 245 POINTER shift and go to state 31 NEW shift and go to state 21 - dimensions shift and go to state 291 - dimension shift and go to state 282 - expression shift and go to state 283 + dimensions shift and go to state 302 + dimension shift and go to state 293 + expression shift and go to state 294 -state 246 +state 257 - (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (70) declare_parameters -> declare_parameters . COMMA declare_parameter + (96) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 292 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 303 + COMMA shift and go to state 276 -state 247 +state 258 - (93) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (98) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15684,134 +16017,137 @@ 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 304 statement shift and go to state 2 expression shift and go to state 9 -state 248 +state 259 - (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE - (70) declare_parameters -> declare_parameters . COMMA declare_parameter + (97) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters . RIGHT_PAREN statements ENDPROCEDURE + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 294 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 305 + COMMA shift and go to state 276 -state 249 +state 260 - (94) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE + (99) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -15856,145 +16192,148 @@ state 249 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 295 + statements shift and go to state 306 statement shift and go to state 2 expression shift and go to state 9 -state 250 +state 261 - (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 + (110) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters . RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (75) declare_parameters -> declare_parameters . COMMA declare_parameter - RIGHT_PAREN shift and go to state 296 - COMMA shift and go to state 265 + RIGHT_PAREN shift and go to state 307 + COMMA shift and go to state 276 -state 251 +state 262 - (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 + (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (119) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 297 + RETURNS shift and go to state 308 -state 252 +state 263 - (27) statement -> IF expression THEN statements ELSE . statements ENDIF + (32) statement -> IF expression THEN statements ELSE . statements ENDIF (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16040,109 +16379,109 @@ state 252 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 298 + statements shift and go to state 309 statement shift and go to state 2 -state 253 +state 264 - (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 .) + (33) statement -> IF expression THEN statements ENDIF . + + DELETE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + DECLARE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + PUBLIC reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + PRIVATE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + CONSTANT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + INPUT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + OUTPUT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + _OUTPUT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + IF reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + CASE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + FOR reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + REPEAT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + WHILE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + PROCEDURE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + CALL reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + FUNCTION reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + RETURN reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + OPENFILE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + READFILE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + WRITEFILE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + CLOSEFILE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + SEEK reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + TYPE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + PASS reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + IMPORT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + CLASS reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + LEFT_SQUARE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ID reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + NOT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + MINUS reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + PLUS reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + LEFT_PAREN reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + DATE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + BOOLEAN reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + CHAR reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + STRING reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + REAL reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + INTEGER reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + MOD reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + DIV reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + POINTER reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + NEW reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + $end reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + UNTIL reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ENDWHILE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ENDTYPE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ENDCLASS reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ELSE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ENDIF reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ENDPROCEDURE reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + SEMICOLON reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + NEXT reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) + ENDFUNCTION reduce using rule 33 (statement -> IF expression THEN statements ENDIF .) -state 254 +state 265 - (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 + (39) case_expression -> expression TO . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -16161,206 +16500,209 @@ state 254 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 299 + expression shift and go to state 310 -state 255 +state 266 - (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 .) + (34) statement -> CASE OF expression cases ENDCASE . + + DELETE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + DECLARE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + PUBLIC reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + PRIVATE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + CONSTANT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + INPUT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + OUTPUT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + _OUTPUT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + IF reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + CASE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + FOR reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + REPEAT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + WHILE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + PROCEDURE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + CALL reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + FUNCTION reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + RETURN reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + OPENFILE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + READFILE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + WRITEFILE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + CLOSEFILE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + SEEK reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + TYPE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + PASS reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + IMPORT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + CLASS reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + LEFT_SQUARE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ID reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + NOT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + MINUS reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + PLUS reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + LEFT_PAREN reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + DATE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + BOOLEAN reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + CHAR reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + STRING reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + REAL reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + INTEGER reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + MOD reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + DIV reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + POINTER reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + NEW reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + $end reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + UNTIL reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ENDWHILE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ENDTYPE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ENDCLASS reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ELSE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ENDIF reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ENDPROCEDURE reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + SEMICOLON reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + NEXT reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) + ENDFUNCTION reduce using rule 34 (statement -> CASE OF expression cases ENDCASE .) -state 256 +state 267 - (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 .) + (35) cases -> cases case . + + ENDCASE reduce using rule 35 (cases -> cases case .) + OTHERWISE reduce using rule 35 (cases -> cases case .) + LEFT_SQUARE reduce using rule 35 (cases -> cases case .) + ID reduce using rule 35 (cases -> cases case .) + NOT reduce using rule 35 (cases -> cases case .) + MINUS reduce using rule 35 (cases -> cases case .) + PLUS reduce using rule 35 (cases -> cases case .) + LEFT_PAREN reduce using rule 35 (cases -> cases case .) + DATE reduce using rule 35 (cases -> cases case .) + BOOLEAN reduce using rule 35 (cases -> cases case .) + CHAR reduce using rule 35 (cases -> cases case .) + STRING reduce using rule 35 (cases -> cases case .) + REAL reduce using rule 35 (cases -> cases case .) + INTEGER reduce using rule 35 (cases -> cases case .) + MOD reduce using rule 35 (cases -> cases case .) + DIV reduce using rule 35 (cases -> cases case .) + POINTER reduce using rule 35 (cases -> cases case .) + NEW reduce using rule 35 (cases -> cases case .) -state 257 +state 268 - (32) case -> case_expression COLON . statements SEMICOLON + (37) case -> case_expression COLON . statements SEMICOLON (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16405,149 +16747,152 @@ state 257 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 300 + statements shift and go to state 311 statement shift and go to state 2 expression shift and go to state 9 -state 258 +state 269 - (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 .) + (38) case -> otherwise_statement SEMICOLON . + + ENDCASE reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + OTHERWISE reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + LEFT_SQUARE reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + ID reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + NOT reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + MINUS reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + PLUS reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + LEFT_PAREN reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + DATE reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + BOOLEAN reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + CHAR reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + STRING reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + REAL reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + INTEGER reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + MOD reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + DIV reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + POINTER reduce using rule 38 (case -> otherwise_statement SEMICOLON .) + NEW reduce using rule 38 (case -> otherwise_statement SEMICOLON .) -state 259 +state 270 - (36) otherwise_statement -> OTHERWISE COLON . statements + (41) otherwise_statement -> OTHERWISE COLON . statements (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16592,52 +16937,52 @@ state 259 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 301 + statements shift and go to state 312 statement shift and go to state 2 expression shift and go to state 9 -state 260 +state 271 - (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 + (42) statement -> FOR ID ASSIGN expression TO . expression STEP expression statements NEXT ID + (43) statement -> FOR ID ASSIGN expression TO . expression statements NEXT ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -16656,238 +17001,241 @@ state 260 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 302 + expression shift and go to state 313 -state 261 +state 272 - (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 .) + (45) statement -> WHILE expression DO statements ENDWHILE . + + DELETE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + DECLARE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + PUBLIC reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + PRIVATE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + CONSTANT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + INPUT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + OUTPUT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + _OUTPUT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + IF reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + CASE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + FOR reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + REPEAT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + WHILE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + PROCEDURE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + CALL reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + FUNCTION reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + RETURN reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + OPENFILE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + READFILE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + WRITEFILE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + CLOSEFILE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + SEEK reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + TYPE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + PASS reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + IMPORT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + CLASS reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + LEFT_SQUARE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ID reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + NOT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + MINUS reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + PLUS reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + LEFT_PAREN reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + DATE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + BOOLEAN reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + CHAR reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + STRING reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + REAL reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + INTEGER reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + MOD reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + DIV reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + POINTER reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + NEW reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + $end reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + UNTIL reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ENDWHILE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ENDTYPE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ENDCLASS reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ELSE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ENDIF reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ENDPROCEDURE reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + SEMICOLON reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + NEXT reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) + ENDFUNCTION reduce using rule 45 (statement -> WHILE expression DO statements ENDWHILE .) -state 262 +state 273 - (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 + (68) expression -> LEFT_PAREN expression . RIGHT_PAREN + (87) parameters -> expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER ! shift/reduce conflict for RIGHT_PAREN resolved as shift - 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 - 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 - - ! RIGHT_PAREN [ reduce using rule 82 (parameters -> expression .) ] + RIGHT_PAREN shift and go to state 165 + COMMA reduce using rule 87 (parameters -> expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 + + ! RIGHT_PAREN [ reduce using rule 87 (parameters -> expression .) ] -state 263 +state 274 - (72) declare_parameter -> ID COLON . ID - (73) declare_parameter -> ID COLON . ARRAY - (78) declare_parameter -> ID COLON . ARRAY OF ID + (77) declare_parameter -> ID COLON . ID + (78) declare_parameter -> ID COLON . ARRAY + (83) declare_parameter -> ID COLON . ARRAY OF ID - ID shift and go to state 303 - ARRAY shift and go to state 304 + ID shift and go to state 314 + ARRAY shift and go to state 315 -state 264 +state 275 - (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (88) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -16932,145 +17280,148 @@ state 264 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 305 + statements shift and go to state 316 statement shift and go to state 2 expression shift and go to state 9 -state 265 +state 276 - (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 + (75) declare_parameters -> declare_parameters COMMA . declare_parameter + (77) declare_parameter -> . ID COLON ID + (78) declare_parameter -> . ID COLON ARRAY + (79) declare_parameter -> . BYREF ID COLON ID + (80) declare_parameter -> . BYREF ID COLON ARRAY + (81) declare_parameter -> . BYVAL ID COLON ID + (82) declare_parameter -> . BYVAL ID COLON ARRAY + (83) declare_parameter -> . ID COLON ARRAY OF ID + (84) declare_parameter -> . BYREF ID COLON ARRAY OF ID + (85) declare_parameter -> . BYVAL ID COLON ARRAY OF ID - ID shift and go to state 207 - BYREF shift and go to state 211 - BYVAL shift and go to state 212 + ID shift and go to state 218 + BYREF shift and go to state 222 + BYVAL shift and go to state 223 - declare_parameter shift and go to state 306 + declare_parameter shift and go to state 317 -state 266 +state 277 - (85) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (90) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 318 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -17117,139 +17468,142 @@ state 266 statement shift and go to state 46 expression shift and go to state 9 -state 267 +state 278 - (74) declare_parameter -> BYREF ID . COLON ID - (75) declare_parameter -> BYREF ID . COLON ARRAY - (79) declare_parameter -> BYREF ID . COLON ARRAY OF ID + (79) declare_parameter -> BYREF ID . COLON ID + (80) declare_parameter -> BYREF ID . COLON ARRAY + (84) declare_parameter -> BYREF ID . COLON ARRAY OF ID - COLON shift and go to state 308 + COLON shift and go to state 319 -state 268 +state 279 - (76) declare_parameter -> BYVAL ID . COLON ID - (77) declare_parameter -> BYVAL ID . COLON ARRAY - (80) declare_parameter -> BYVAL ID . COLON ARRAY OF ID + (81) declare_parameter -> BYVAL ID . COLON ID + (82) declare_parameter -> BYVAL ID . COLON ARRAY + (85) declare_parameter -> BYVAL ID . COLON ARRAY OF ID - COLON shift and go to state 309 + COLON shift and go to state 320 -state 269 +state 280 - (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (89) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -17294,126 +17648,129 @@ state 269 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 310 + statements shift and go to state 321 statement shift and go to state 2 expression shift and go to state 9 -state 270 +state 281 - (86) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (91) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 322 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -17460,208 +17817,208 @@ state 270 statement shift and go to state 46 expression shift and go to state 9 -state 271 +state 282 - (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 .) + (147) expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN . + + ASSIGN reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OR reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + AND reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + EQUAL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT_EQUAL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LESS_EQUAL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + GREATER_EQUAL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + MUL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + N_DIV reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CONNECT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DOT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DELETE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_SQUARE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + COMMA reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + THEN reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + DO reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + RIGHT_PAREN reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + OTHERWISE reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + TO reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + COLON reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) + STEP reduce using rule 147 (expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN .) -state 272 +state 283 - (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 .) + (100) statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN . + + DELETE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + DECLARE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PUBLIC reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PRIVATE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CONSTANT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + INPUT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + OUTPUT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + _OUTPUT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + IF reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CASE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + FOR reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + REPEAT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + WHILE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PROCEDURE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CALL reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + FUNCTION reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + RETURN reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + OPENFILE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + READFILE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + WRITEFILE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CLOSEFILE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + SEEK reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + TYPE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PASS reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + IMPORT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CLASS reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ID reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + NOT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + MINUS reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + PLUS reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + LEFT_PAREN reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + DATE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + BOOLEAN reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + CHAR reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + STRING reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + REAL reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + INTEGER reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + MOD reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + DIV reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + POINTER reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + NEW reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + $end reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + UNTIL reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDWHILE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDTYPE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDCLASS reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ELSE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDIF reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + SEMICOLON reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + NEXT reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) + ENDFUNCTION reduce using rule 100 (statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN .) -state 273 +state 284 - (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 + (102) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (103) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (114) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 312 + RETURNS shift and go to state 323 -state 274 +state 285 - (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 + (104) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (105) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (115) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 313 - ARRAY shift and go to state 314 + ID shift and go to state 324 + ARRAY shift and go to state 325 -state 275 +state 286 - (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 + (129) statement -> READFILE expression COMMA ID LEFT_SQUARE . indexes RIGHT_SQUARE + (21) indexes -> . indexes COMMA expression + (22) indexes -> . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -17680,208 +18037,211 @@ state 275 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 110 - indexes shift and go to state 315 + expression shift and go to state 113 + indexes shift and go to state 326 -state 276 +state 287 - (133) enumerate_items -> ID . + (138) enumerate_items -> ID . - RIGHT_PAREN reduce using rule 133 (enumerate_items -> ID .) - COMMA reduce using rule 133 (enumerate_items -> ID .) + RIGHT_PAREN reduce using rule 138 (enumerate_items -> ID .) + COMMA reduce using rule 138 (enumerate_items -> ID .) -state 277 +state 288 - (131) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items . RIGHT_PAREN - (132) enumerate_items -> enumerate_items . COMMA ID + (136) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items . RIGHT_PAREN + (137) enumerate_items -> enumerate_items . COMMA ID - RIGHT_PAREN shift and go to state 316 - COMMA shift and go to state 317 + RIGHT_PAREN shift and go to state 327 + COMMA shift and go to state 328 -state 278 +state 289 - (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 .) + (141) statement -> TYPE ID EQUAL POINTER ID . + + DELETE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + DECLARE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + PUBLIC reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + PRIVATE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + CONSTANT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + INPUT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + OUTPUT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + _OUTPUT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + IF reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + CASE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + FOR reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + REPEAT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + WHILE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + PROCEDURE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + CALL reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + FUNCTION reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + RETURN reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + OPENFILE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + READFILE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + WRITEFILE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + CLOSEFILE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + SEEK reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + TYPE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + PASS reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + IMPORT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + CLASS reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + LEFT_SQUARE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ID reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + NOT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + MINUS reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + PLUS reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + LEFT_PAREN reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + DATE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + BOOLEAN reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + CHAR reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + STRING reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + REAL reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + INTEGER reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + MOD reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + DIV reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + POINTER reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + NEW reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + $end reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + UNTIL reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ENDWHILE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ENDTYPE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ENDCLASS reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ELSE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ENDIF reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ENDPROCEDURE reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + SEMICOLON reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + NEXT reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) + ENDFUNCTION reduce using rule 141 (statement -> TYPE ID EQUAL POINTER ID .) -state 279 +state 290 - (143) statement -> TYPE ID EQUAL SET OF . ID + (148) statement -> TYPE ID EQUAL SET OF . ID - ID shift and go to state 318 + ID shift and go to state 329 -state 280 +state 291 - (140) statement -> CLASS ID INHERITS ID statements . ENDCLASS + (145) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDCLASS shift and go to state 330 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -17928,188 +18288,191 @@ state 280 statement shift and go to state 46 expression shift and go to state 9 -state 281 +state 292 - (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID - (12) dimensions -> dimensions . COMMA dimension + (14) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID + (17) dimensions -> dimensions . COMMA dimension - RIGHT_SQUARE shift and go to state 320 - COMMA shift and go to state 321 + RIGHT_SQUARE shift and go to state 331 + COMMA shift and go to state 332 -state 282 +state 293 - (13) dimensions -> dimension . + (18) dimensions -> dimension . - RIGHT_SQUARE reduce using rule 13 (dimensions -> dimension .) - COMMA reduce using rule 13 (dimensions -> dimension .) + RIGHT_SQUARE reduce using rule 18 (dimensions -> dimension .) + COMMA reduce using rule 18 (dimensions -> dimension .) -state 283 +state 294 - (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 - 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 + (19) dimension -> expression . COLON expression + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + COLON shift and go to state 333 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 284 +state 295 - (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID - (12) dimensions -> dimensions . COMMA dimension + (15) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID + (17) dimensions -> dimensions . COMMA dimension - RIGHT_SQUARE shift and go to state 323 - COMMA shift and go to state 321 + RIGHT_SQUARE shift and go to state 334 + COMMA shift and go to state 332 -state 285 +state 296 - (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (92) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -18154,126 +18517,129 @@ 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 335 statement shift and go to state 2 expression shift and go to state 9 -state 286 +state 297 - (89) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (94) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 336 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -18320,121 +18686,124 @@ state 286 statement shift and go to state 46 expression shift and go to state 9 -state 287 +state 298 - (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (93) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -18479,126 +18848,129 @@ state 287 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 326 + statements shift and go to state 337 statement shift and go to state 2 expression shift and go to state 9 -state 288 +state 299 - (90) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (95) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 338 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -18645,149 +19017,152 @@ state 288 statement shift and go to state 46 expression shift and go to state 9 -state 289 +state 300 - (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 + (106) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (107) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 328 + RETURNS shift and go to state 339 -state 290 +state 301 - (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 + (108) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (109) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (117) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 329 - ARRAY shift and go to state 330 + ID shift and go to state 340 + ARRAY shift and go to state 341 -state 291 +state 302 - (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID - (12) dimensions -> dimensions . COMMA dimension + (16) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions . RIGHT_SQUARE OF ID + (17) dimensions -> dimensions . COMMA dimension - RIGHT_SQUARE shift and go to state 331 - COMMA shift and go to state 321 + RIGHT_SQUARE shift and go to state 342 + COMMA shift and go to state 332 -state 292 +state 303 - (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (96) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -18832,126 +19207,129 @@ 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 343 statement shift and go to state 2 expression shift and go to state 9 -state 293 +state 304 - (93) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (98) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) 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 @@ -18998,121 +19376,124 @@ state 293 statement shift and go to state 46 expression shift and go to state 9 -state 294 +state 305 - (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE + (97) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN . statements ENDPROCEDURE (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -19157,126 +19538,129 @@ state 294 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 334 + statements shift and go to state 345 statement shift and go to state 2 expression shift and go to state 9 -state 295 +state 306 - (94) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements . ENDPROCEDURE + (99) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 346 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19323,141 +19707,144 @@ state 295 statement shift and go to state 46 expression shift and go to state 9 -state 296 +state 307 - (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 + (110) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ID statements ENDFUNCTION + (111) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN . RETURNS ARRAY OF ID statements ENDFUNCTION - RETURNS shift and go to state 336 + RETURNS shift and go to state 347 -state 297 +state 308 - (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 + (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (119) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 337 - ARRAY shift and go to state 338 + ID shift and go to state 348 + ARRAY shift and go to state 349 -state 298 +state 309 - (27) statement -> IF expression THEN statements ELSE statements . ENDIF + (32) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDIF shift and go to state 350 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19504,163 +19891,166 @@ state 298 expression shift and go to state 9 statement shift and go to state 46 -state 299 +state 310 - (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 - 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 + (39) case_expression -> expression TO expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + COLON reduce using rule 39 (case_expression -> expression TO expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 300 +state 311 - (32) case -> case_expression COLON statements . SEMICOLON + (37) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + SEMICOLON shift and go to state 351 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -19707,122 +20097,125 @@ state 300 statement shift and go to state 46 expression shift and go to state 9 -state 301 +state 312 - (36) otherwise_statement -> OTHERWISE COLON statements . + (41) 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 -> . 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 .) + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + SEMICOLON reduce using rule 41 (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 @@ -19869,158 +20262,161 @@ state 301 statement shift and go to state 46 expression shift and go to state 9 -state 302 +state 313 - (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 + (42) statement -> FOR ID ASSIGN expression TO expression . STEP expression statements NEXT ID + (43) statement -> FOR ID ASSIGN expression TO expression . statements NEXT ID + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER (1) statements -> . statements statement (2) 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 -> . 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 - 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 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 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 155 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + STEP shift and go to state 352 + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 158 + DIV shift and go to state 159 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 160 + MINUS shift and go to state 161 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 162 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20060,143 +20456,146 @@ state 302 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 342 + statements shift and go to state 353 statement shift and go to state 2 -state 303 +state 314 - (72) declare_parameter -> ID COLON ID . + (77) 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 .) + RIGHT_PAREN reduce using rule 77 (declare_parameter -> ID COLON ID .) + COMMA reduce using rule 77 (declare_parameter -> ID COLON ID .) -state 304 +state 315 - (73) declare_parameter -> ID COLON ARRAY . - (78) declare_parameter -> ID COLON ARRAY . OF ID + (78) declare_parameter -> ID COLON ARRAY . + (83) declare_parameter -> ID COLON ARRAY . OF ID - 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 + RIGHT_PAREN reduce using rule 78 (declare_parameter -> ID COLON ARRAY .) + COMMA reduce using rule 78 (declare_parameter -> ID COLON ARRAY .) + OF shift and go to state 354 -state 305 +state 316 - (83) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (88) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 355 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20243,209 +20642,212 @@ state 305 statement shift and go to state 46 expression shift and go to state 9 -state 306 +state 317 - (70) declare_parameters -> declare_parameters COMMA declare_parameter . + (75) 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 .) + RIGHT_PAREN reduce using rule 75 (declare_parameters -> declare_parameters COMMA declare_parameter .) + COMMA reduce using rule 75 (declare_parameters -> declare_parameters COMMA declare_parameter .) -state 307 +state 318 - (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 .) + (90) statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 90 (statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 308 +state 319 - (74) declare_parameter -> BYREF ID COLON . ID - (75) declare_parameter -> BYREF ID COLON . ARRAY - (79) declare_parameter -> BYREF ID COLON . ARRAY OF ID + (79) declare_parameter -> BYREF ID COLON . ID + (80) declare_parameter -> BYREF ID COLON . ARRAY + (84) declare_parameter -> BYREF 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 356 + ARRAY shift and go to state 357 -state 309 +state 320 - (76) declare_parameter -> BYVAL ID COLON . ID - (77) declare_parameter -> BYVAL ID COLON . ARRAY - (80) declare_parameter -> BYVAL ID COLON . ARRAY OF ID + (81) declare_parameter -> BYVAL ID COLON . ID + (82) declare_parameter -> BYVAL ID COLON . ARRAY + (85) declare_parameter -> BYVAL ID COLON . ARRAY OF ID - ID shift and go to state 347 - ARRAY shift and go to state 348 + ID shift and go to state 358 + ARRAY shift and go to state 359 -state 310 +state 321 - (84) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (89) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 360 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20492,190 +20894,193 @@ state 310 statement shift and go to state 46 expression shift and go to state 9 -state 311 +state 322 - (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 .) + (91) statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 91 (statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 312 +state 323 - (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 + (102) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (103) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (114) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 350 - ARRAY shift and go to state 351 + ID shift and go to state 361 + ARRAY shift and go to state 362 -state 313 +state 324 - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (104) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -20720,128 +21125,131 @@ state 313 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 352 + statements shift and go to state 363 statement shift and go to state 2 expression shift and go to state 9 -state 314 +state 325 - (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 + (105) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (115) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . OF ID statements ENDFUNCTION (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 365 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -20885,252 +21293,252 @@ state 314 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 353 + statements shift and go to state 364 statement shift and go to state 2 expression shift and go to state 9 -state 315 +state 326 - (124) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes . RIGHT_SQUARE - (16) indexes -> indexes . COMMA expression + (129) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes . RIGHT_SQUARE + (21) indexes -> indexes . COMMA expression - RIGHT_SQUARE shift and go to state 355 - COMMA shift and go to state 173 + RIGHT_SQUARE shift and go to state 366 + COMMA shift and go to state 180 -state 316 +state 327 - (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 .) + (136) statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN . + + DELETE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + DECLARE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PUBLIC reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PRIVATE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CONSTANT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + INPUT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + OUTPUT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + _OUTPUT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + IF reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CASE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + FOR reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + REPEAT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + WHILE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PROCEDURE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CALL reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + FUNCTION reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + RETURN reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + OPENFILE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + READFILE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + WRITEFILE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CLOSEFILE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + SEEK reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + TYPE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PASS reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + IMPORT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CLASS reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + LEFT_SQUARE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ID reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + NOT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + MINUS reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + PLUS reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + LEFT_PAREN reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + DATE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + BOOLEAN reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + CHAR reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + STRING reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + REAL reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + INTEGER reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + MOD reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + DIV reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + POINTER reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + NEW reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + $end reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + UNTIL reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDWHILE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDTYPE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDCLASS reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ELSE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDIF reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDPROCEDURE reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + SEMICOLON reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + NEXT reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) + ENDFUNCTION reduce using rule 136 (statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN .) -state 317 +state 328 - (132) enumerate_items -> enumerate_items COMMA . ID + (137) enumerate_items -> enumerate_items COMMA . ID - ID shift and go to state 356 + ID shift and go to state 367 -state 318 +state 329 - (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 .) + (148) statement -> TYPE ID EQUAL SET OF ID . + + DELETE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + DECLARE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + PUBLIC reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + PRIVATE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + CONSTANT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + INPUT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + OUTPUT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + _OUTPUT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + IF reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + CASE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + FOR reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + REPEAT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + WHILE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + PROCEDURE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + CALL reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + FUNCTION reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + RETURN reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + OPENFILE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + READFILE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + WRITEFILE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + CLOSEFILE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + SEEK reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + TYPE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + PASS reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + IMPORT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + CLASS reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + LEFT_SQUARE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ID reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + NOT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + MINUS reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + PLUS reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + LEFT_PAREN reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + DATE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + BOOLEAN reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + CHAR reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + STRING reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + REAL reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + INTEGER reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + MOD reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + DIV reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + POINTER reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + NEW reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + $end reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + UNTIL reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ENDWHILE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ENDTYPE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ENDCLASS reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ELSE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ENDIF reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ENDPROCEDURE reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + SEMICOLON reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + NEXT reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) + ENDFUNCTION reduce using rule 148 (statement -> TYPE ID EQUAL SET OF ID .) -state 319 +state 330 - (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 .) + (145) statement -> CLASS ID INHERITS ID statements ENDCLASS . + + DELETE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + DECLARE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PUBLIC reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PRIVATE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CONSTANT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + INPUT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + OUTPUT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + _OUTPUT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + IF reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CASE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + FOR reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + REPEAT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + WHILE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PROCEDURE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CALL reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + FUNCTION reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + RETURN reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + OPENFILE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + READFILE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + WRITEFILE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CLOSEFILE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + SEEK reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + TYPE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PASS reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + IMPORT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CLASS reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + LEFT_SQUARE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ID reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + NOT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + MINUS reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + PLUS reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + LEFT_PAREN reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + DATE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + BOOLEAN reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + CHAR reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + STRING reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + REAL reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + INTEGER reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + MOD reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + DIV reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + POINTER reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + NEW reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + $end reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + UNTIL reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDWHILE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDTYPE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDCLASS reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ELSE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDIF reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDPROCEDURE reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + SEMICOLON reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + NEXT reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) + ENDFUNCTION reduce using rule 145 (statement -> CLASS ID INHERITS ID statements ENDCLASS .) -state 320 +state 331 - (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID + (14) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID - OF shift and go to state 357 + OF shift and go to state 368 -state 321 +state 332 - (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 + (17) dimensions -> dimensions COMMA . dimension + (19) dimension -> . expression COLON expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -21149,50 +21557,50 @@ state 321 POINTER shift and go to state 31 NEW shift and go to state 21 - dimension shift and go to state 358 - expression shift and go to state 283 + dimension shift and go to state 369 + expression shift and go to state 294 -state 322 +state 333 - (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 + (19) dimension -> expression COLON . expression + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -21211,131 +21619,134 @@ state 322 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 359 + expression shift and go to state 370 -state 323 +state 334 - (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID + (15) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID - OF shift and go to state 360 + OF shift and go to state 371 -state 324 +state 335 - (87) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (92) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 372 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21382,181 +21793,184 @@ state 324 statement shift and go to state 46 expression shift and go to state 9 -state 325 +state 336 - (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 .) + (94) statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 94 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 326 +state 337 - (88) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (93) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 373 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21603,190 +22017,193 @@ state 326 statement shift and go to state 46 expression shift and go to state 9 -state 327 +state 338 - (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 .) + (95) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 95 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 328 +state 339 - (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 + (106) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (107) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 363 - ARRAY shift and go to state 364 + ID shift and go to state 374 + ARRAY shift and go to state 375 -state 329 +state 340 - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (108) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -21831,128 +22248,131 @@ state 329 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 365 + statements shift and go to state 376 statement shift and go to state 2 expression shift and go to state 9 -state 330 +state 341 - (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 + (109) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (117) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 378 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -21996,133 +22416,136 @@ state 330 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 366 + statements shift and go to state 377 statement shift and go to state 2 expression shift and go to state 9 -state 331 +state 342 - (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID + (16) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE . OF ID - OF shift and go to state 368 + OF shift and go to state 379 -state 332 +state 343 - (91) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (96) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 380 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -22169,181 +22592,184 @@ state 332 statement shift and go to state 46 expression shift and go to state 9 -state 333 +state 344 - (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 .) + (98) statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 98 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 334 +state 345 - (92) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements . ENDPROCEDURE + (97) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDPROCEDURE shift and go to state 381 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -22390,190 +22816,193 @@ state 334 statement shift and go to state 46 expression shift and go to state 9 -state 335 +state 346 - (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 .) + (99) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 99 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE .) -state 336 +state 347 - (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 + (110) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ID statements ENDFUNCTION + (111) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS . ARRAY OF ID statements ENDFUNCTION - ID shift and go to state 371 - ARRAY shift and go to state 372 + ID shift and go to state 382 + ARRAY shift and go to state 383 -state 337 +state 348 - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -22618,128 +23047,131 @@ state 337 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 373 + statements shift and go to state 384 statement shift and go to state 2 expression shift and go to state 9 -state 338 +state 349 - (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 + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (119) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 386 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -22783,134 +23215,134 @@ state 338 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 374 + statements shift and go to state 385 statement shift and go to state 2 expression shift and go to state 9 -state 339 +state 350 - (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 .) + (32) statement -> IF expression THEN statements ELSE statements ENDIF . + + DELETE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + DECLARE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PUBLIC reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PRIVATE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CONSTANT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + INPUT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + OUTPUT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + _OUTPUT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + IF reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CASE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + FOR reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + REPEAT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + WHILE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PROCEDURE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CALL reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + FUNCTION reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + RETURN reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + OPENFILE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + READFILE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + WRITEFILE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CLOSEFILE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + SEEK reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + TYPE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PASS reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + IMPORT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CLASS reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + LEFT_SQUARE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ID reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + NOT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + MINUS reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + PLUS reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + LEFT_PAREN reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + DATE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + BOOLEAN reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + CHAR reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + STRING reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + REAL reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + INTEGER reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + MOD reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + DIV reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + POINTER reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + NEW reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + $end reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + UNTIL reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDWHILE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDTYPE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDCLASS reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ELSE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDIF reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDPROCEDURE reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + SEMICOLON reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + NEXT reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) + ENDFUNCTION reduce using rule 32 (statement -> IF expression THEN statements ELSE statements ENDIF .) -state 340 +state 351 - (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 .) + (37) case -> case_expression COLON statements SEMICOLON . + + ENDCASE reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + OTHERWISE reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + LEFT_SQUARE reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + ID reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + NOT reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + MINUS reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + PLUS reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + LEFT_PAREN reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + DATE reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + BOOLEAN reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + CHAR reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + STRING reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + REAL reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + INTEGER reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + MOD reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + DIV reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + POINTER reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) + NEW reduce using rule 37 (case -> case_expression COLON statements SEMICOLON .) -state 341 +state 352 - (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 + (42) statement -> FOR ID ASSIGN expression TO expression STEP . expression statements NEXT ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN LEFT_SQUARE shift and go to state 10 ID shift and go to state 4 @@ -22929,124 +23361,127 @@ state 341 POINTER shift and go to state 31 NEW shift and go to state 21 - expression shift and go to state 376 + expression shift and go to state 387 -state 342 +state 353 - (38) statement -> FOR ID ASSIGN expression TO expression statements . NEXT ID + (43) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + NEXT shift and go to state 388 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23093,282 +23528,285 @@ state 342 expression shift and go to state 9 statement shift and go to state 46 -state 343 +state 354 - (78) declare_parameter -> ID COLON ARRAY OF . ID + (83) declare_parameter -> ID COLON ARRAY OF . ID - ID shift and go to state 378 + ID shift and go to state 389 -state 344 +state 355 - (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 .) + (88) statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 88 (statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 345 +state 356 - (74) declare_parameter -> BYREF ID COLON ID . + (79) 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 .) + RIGHT_PAREN reduce using rule 79 (declare_parameter -> BYREF ID COLON ID .) + COMMA reduce using rule 79 (declare_parameter -> BYREF ID COLON ID .) -state 346 +state 357 - (75) declare_parameter -> BYREF ID COLON ARRAY . - (79) declare_parameter -> BYREF ID COLON ARRAY . OF ID + (80) declare_parameter -> BYREF ID COLON ARRAY . + (84) declare_parameter -> BYREF ID COLON ARRAY . OF ID - 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 + RIGHT_PAREN reduce using rule 80 (declare_parameter -> BYREF ID COLON ARRAY .) + COMMA reduce using rule 80 (declare_parameter -> BYREF ID COLON ARRAY .) + OF shift and go to state 390 -state 347 +state 358 - (76) declare_parameter -> BYVAL ID COLON ID . + (81) 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 .) + RIGHT_PAREN reduce using rule 81 (declare_parameter -> BYVAL ID COLON ID .) + COMMA reduce using rule 81 (declare_parameter -> BYVAL ID COLON ID .) -state 348 +state 359 - (77) declare_parameter -> BYVAL ID COLON ARRAY . - (80) declare_parameter -> BYVAL ID COLON ARRAY . OF ID + (82) declare_parameter -> BYVAL ID COLON ARRAY . + (85) declare_parameter -> BYVAL ID COLON ARRAY . OF ID - 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 + RIGHT_PAREN reduce using rule 82 (declare_parameter -> BYVAL ID COLON ARRAY .) + COMMA reduce using rule 82 (declare_parameter -> BYVAL ID COLON ARRAY .) + OF shift and go to state 391 -state 349 +state 360 - (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 .) + (89) statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 89 (statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 350 +state 361 - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (102) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -23413,128 +23851,131 @@ state 350 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 381 + statements shift and go to state 392 statement shift and go to state 2 expression shift and go to state 9 -state 351 +state 362 - (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 + (103) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (114) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 394 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23578,126 +24019,129 @@ state 351 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 382 + statements shift and go to state 393 statement shift and go to state 2 expression shift and go to state 9 -state 352 +state 363 - (99) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (104) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 395 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23744,122 +24188,125 @@ state 352 statement shift and go to state 46 expression shift and go to state 9 -state 353 +state 364 - (100) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (105) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 396 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -23906,377 +24353,380 @@ state 353 statement shift and go to state 46 expression shift and go to state 9 -state 354 +state 365 - (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (115) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 386 + ID shift and go to state 397 -state 355 +state 366 - (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 .) + (129) statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE . + + DELETE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DECLARE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PUBLIC reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PRIVATE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CONSTANT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INPUT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OUTPUT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + _OUTPUT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IF reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CASE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FOR reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REPEAT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WHILE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PROCEDURE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CALL reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + FUNCTION reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + RETURN reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + OPENFILE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + READFILE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + WRITEFILE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLOSEFILE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEEK reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + TYPE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PASS reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + IMPORT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CLASS reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_SQUARE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ID reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NOT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MINUS reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + PLUS reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + LEFT_PAREN reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DATE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + BOOLEAN reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + CHAR reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + STRING reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + REAL reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + INTEGER reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + MOD reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + DIV reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + POINTER reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEW reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + $end reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + UNTIL reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDWHILE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDTYPE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDCLASS reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ELSE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDIF reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDPROCEDURE reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + SEMICOLON reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + NEXT reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) + ENDFUNCTION reduce using rule 129 (statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE .) -state 356 +state 367 - (132) enumerate_items -> enumerate_items COMMA ID . + (137) 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 .) + RIGHT_PAREN reduce using rule 137 (enumerate_items -> enumerate_items COMMA ID .) + COMMA reduce using rule 137 (enumerate_items -> enumerate_items COMMA ID .) -state 357 +state 368 - (9) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID + (14) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID - ID shift and go to state 387 + ID shift and go to state 398 -state 358 +state 369 - (12) dimensions -> dimensions COMMA dimension . + (17) dimensions -> dimensions COMMA dimension . - RIGHT_SQUARE reduce using rule 12 (dimensions -> dimensions COMMA dimension .) - COMMA reduce using rule 12 (dimensions -> dimensions COMMA dimension .) + RIGHT_SQUARE reduce using rule 17 (dimensions -> dimensions COMMA dimension .) + COMMA reduce using rule 17 (dimensions -> dimensions COMMA dimension .) -state 359 +state 370 - (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 - 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 + (19) dimension -> expression COLON expression . + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER + + RIGHT_SQUARE reduce using rule 19 (dimension -> expression COLON expression .) + COMMA reduce using rule 19 (dimension -> expression COLON expression .) + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 70 + DIV shift and go to state 71 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 74 + MINUS shift and go to state 75 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 78 -state 360 +state 371 - (10) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID + (15) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID - ID shift and go to state 388 + ID shift and go to state 399 -state 361 +state 372 - (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 .) + (92) statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 92 (statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 362 +state 373 - (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 .) + (93) statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 93 (statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 363 +state 374 - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (106) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -24321,128 +24771,131 @@ state 363 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 389 + statements shift and go to state 400 statement shift and go to state 2 expression shift and go to state 9 -state 364 +state 375 - (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 + (107) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (116) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 402 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -24486,126 +24939,129 @@ state 364 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 390 + statements shift and go to state 401 statement shift and go to state 2 expression shift and go to state 9 -state 365 +state 376 - (103) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (108) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 403 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -24652,122 +25108,125 @@ state 365 statement shift and go to state 46 expression shift and go to state 9 -state 366 +state 377 - (104) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (109) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 404 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -24814,253 +25273,256 @@ state 366 statement shift and go to state 46 expression shift and go to state 9 -state 367 +state 378 - (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (117) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 394 + ID shift and go to state 405 -state 368 +state 379 - (11) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID + (16) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF . ID - ID shift and go to state 395 + ID shift and go to state 406 -state 369 +state 380 - (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 .) + (96) statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 96 (statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 370 +state 381 - (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 .) + (97) statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE . + + DELETE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DECLARE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PUBLIC reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PRIVATE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CONSTANT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INPUT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OUTPUT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + _OUTPUT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IF reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CASE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FOR reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REPEAT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WHILE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PROCEDURE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CALL reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + FUNCTION reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + RETURN reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + OPENFILE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + READFILE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + WRITEFILE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLOSEFILE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEEK reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + TYPE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PASS reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + IMPORT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CLASS reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_SQUARE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ID reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NOT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MINUS reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + PLUS reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + LEFT_PAREN reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DATE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + BOOLEAN reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + CHAR reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + STRING reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + REAL reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + INTEGER reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + MOD reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + DIV reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + POINTER reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEW reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + $end reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + UNTIL reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDWHILE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDTYPE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDCLASS reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ELSE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDIF reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDPROCEDURE reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + SEMICOLON reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + NEXT reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) + ENDFUNCTION reduce using rule 97 (statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE .) -state 371 +state 382 - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID . statements ENDFUNCTION + (110) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -25105,128 +25567,131 @@ state 371 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 396 + statements shift and go to state 407 statement shift and go to state 2 expression shift and go to state 9 -state 372 +state 383 - (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 + (111) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY . statements ENDFUNCTION + (118) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OF shift and go to state 409 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25270,126 +25735,129 @@ state 372 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 397 + statements shift and go to state 408 statement shift and go to state 2 expression shift and go to state 9 -state 373 +state 384 - (107) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (112) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) 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 @@ -25436,122 +25904,125 @@ state 373 statement shift and go to state 46 expression shift and go to state 9 -state 374 +state 385 - (108) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (113) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) 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 @@ -25598,163 +26069,166 @@ state 374 statement shift and go to state 46 expression shift and go to state 9 -state 375 +state 386 - (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (119) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 401 + ID shift and go to state 412 -state 376 +state 387 - (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 + (42) statement -> FOR ID ASSIGN expression TO expression STEP expression . statements NEXT ID + (50) expression -> expression . OR expression + (51) expression -> expression . AND expression + (53) expression -> expression . EQUAL expression + (54) expression -> expression . NOT_EQUAL expression + (55) expression -> expression . LESS expression + (56) expression -> expression . GREATER expression + (57) expression -> expression . LESS_EQUAL expression + (58) expression -> expression . GREATER_EQUAL expression + (59) expression -> expression . MOD expression + (60) expression -> expression . DIV expression + (61) expression -> expression . MUL expression + (62) expression -> expression . N_DIV expression + (65) expression -> expression . PLUS expression + (66) expression -> expression . MINUS expression + (67) expression -> expression . CONNECT expression + (135) expression -> expression . DOT expression + (140) expression -> expression . POINTER (1) statements -> . statements statement (2) 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 -> . 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 - 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 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 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 155 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + OR shift and go to state 62 + AND shift and go to state 63 + EQUAL shift and go to state 64 + NOT_EQUAL shift and go to state 65 + LESS shift and go to state 66 + GREATER shift and go to state 67 + LESS_EQUAL shift and go to state 68 + GREATER_EQUAL shift and go to state 69 + MOD shift and go to state 158 + DIV shift and go to state 159 + MUL shift and go to state 72 + N_DIV shift and go to state 73 + PLUS shift and go to state 160 + MINUS shift and go to state 161 + CONNECT shift and go to state 76 + DOT shift and go to state 77 + POINTER shift and go to state 162 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25794,154 +26268,157 @@ state 376 NEW shift and go to state 21 expression shift and go to state 9 - statements shift and go to state 402 + statements shift and go to state 413 statement shift and go to state 2 -state 377 +state 388 - (38) statement -> FOR ID ASSIGN expression TO expression statements NEXT . ID + (43) statement -> FOR ID ASSIGN expression TO expression statements NEXT . ID - ID shift and go to state 403 + ID shift and go to state 414 -state 378 +state 389 - (78) declare_parameter -> ID COLON ARRAY OF ID . + (83) 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 .) + RIGHT_PAREN reduce using rule 83 (declare_parameter -> ID COLON ARRAY OF ID .) + COMMA reduce using rule 83 (declare_parameter -> ID COLON ARRAY OF ID .) -state 379 +state 390 - (79) declare_parameter -> BYREF ID COLON ARRAY OF . ID + (84) declare_parameter -> BYREF ID COLON ARRAY OF . ID - ID shift and go to state 404 + ID shift and go to state 415 -state 380 +state 391 - (80) declare_parameter -> BYVAL ID COLON ARRAY OF . ID + (85) declare_parameter -> BYVAL ID COLON ARRAY OF . ID - ID shift and go to state 405 + ID shift and go to state 416 -state 381 +state 392 - (97) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (102) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 417 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -25988,122 +26465,125 @@ state 381 statement shift and go to state 46 expression shift and go to state 9 -state 382 +state 393 - (98) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (103) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION 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 @@ -26150,246 +26630,249 @@ state 382 statement shift and go to state 46 expression shift and go to state 9 -state 383 +state 394 - (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (114) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 408 + ID shift and go to state 419 -state 384 +state 395 - (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 .) + (104) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 104 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 385 +state 396 - (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 .) + (105) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 105 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 386 +state 397 - (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (115) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION (1) statements -> . statements statement (2) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -26434,244 +26917,247 @@ state 386 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 409 + statements shift and go to state 420 statement shift and go to state 2 expression shift and go to state 9 -state 387 +state 398 - (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 .) + (14) statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . + + DELETE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DECLARE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PUBLIC reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PRIVATE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CONSTANT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INPUT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OUTPUT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + _OUTPUT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IF reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CASE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FOR reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REPEAT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WHILE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PROCEDURE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CALL reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FUNCTION reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + RETURN reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OPENFILE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + READFILE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WRITEFILE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLOSEFILE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEEK reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + TYPE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PASS reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IMPORT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLASS reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_SQUARE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ID reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NOT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MINUS reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PLUS reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_PAREN reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DATE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + BOOLEAN reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CHAR reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + STRING reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REAL reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INTEGER reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MOD reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DIV reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + POINTER reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEW reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + $end reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + UNTIL reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDWHILE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDTYPE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDCLASS reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ELSE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDIF reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDPROCEDURE reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEMICOLON reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEXT reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDFUNCTION reduce using rule 14 (statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) -state 388 +state 399 - (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 .) + (15) statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . + + DELETE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DECLARE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PUBLIC reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PRIVATE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CONSTANT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INPUT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OUTPUT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + _OUTPUT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IF reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CASE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FOR reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REPEAT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WHILE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PROCEDURE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CALL reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FUNCTION reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + RETURN reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OPENFILE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + READFILE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WRITEFILE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLOSEFILE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEEK reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + TYPE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PASS reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IMPORT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLASS reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_SQUARE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ID reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NOT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MINUS reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PLUS reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_PAREN reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DATE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + BOOLEAN reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CHAR reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + STRING reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REAL reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INTEGER reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MOD reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DIV reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + POINTER reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEW reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + $end reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + UNTIL reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDWHILE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDTYPE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDCLASS reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ELSE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDIF reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDPROCEDURE reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEMICOLON reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEXT reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDFUNCTION reduce using rule 15 (statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) -state 389 +state 400 - (101) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (106) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 421 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -26718,122 +27204,125 @@ state 389 statement shift and go to state 46 expression shift and go to state 9 -state 390 +state 401 - (102) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (107) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN - ENDFUNCTION shift and go to state 411 + 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 @@ -26880,246 +27369,249 @@ state 390 statement shift and go to state 46 expression shift and go to state 9 -state 391 +state 402 - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (116) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 412 + ID shift and go to state 423 -state 392 +state 403 - (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 .) + (108) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 108 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 393 +state 404 - (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 .) + (109) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 109 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 394 +state 405 - (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (117) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -27164,185 +27656,188 @@ state 394 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 413 + statements shift and go to state 424 statement shift and go to state 2 expression shift and go to state 9 -state 395 +state 406 - (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 .) + (16) statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID . + + DELETE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DECLARE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PUBLIC reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PRIVATE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CONSTANT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INPUT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OUTPUT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + _OUTPUT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IF reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CASE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FOR reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REPEAT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WHILE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PROCEDURE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CALL reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + FUNCTION reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + RETURN reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + OPENFILE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + READFILE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + WRITEFILE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLOSEFILE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEEK reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + TYPE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PASS reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + IMPORT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CLASS reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_SQUARE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ID reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NOT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MINUS reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + PLUS reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + LEFT_PAREN reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DATE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + BOOLEAN reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + CHAR reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + STRING reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + REAL reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + INTEGER reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + MOD reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + DIV reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + POINTER reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEW reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + $end reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + UNTIL reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDWHILE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDTYPE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDCLASS reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ELSE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDIF reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDPROCEDURE reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + SEMICOLON reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + NEXT reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) + ENDFUNCTION reduce using rule 16 (statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID .) -state 396 +state 407 - (105) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements . ENDFUNCTION + (110) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 425 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -27389,122 +27884,125 @@ state 396 statement shift and go to state 46 expression shift and go to state 9 -state 397 +state 408 - (106) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements . ENDFUNCTION + (111) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + 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 @@ -27551,246 +28049,249 @@ state 397 statement shift and go to state 46 expression shift and go to state 9 -state 398 +state 409 - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION + (118) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF . ID statements ENDFUNCTION - ID shift and go to state 416 + ID shift and go to state 427 -state 399 +state 410 - (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 .) + (112) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 112 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 400 +state 411 - (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 .) + (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 113 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 401 +state 412 - (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (119) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -27835,126 +28336,129 @@ state 401 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 428 statement shift and go to state 2 expression shift and go to state 9 -state 402 +state 413 - (37) statement -> FOR ID ASSIGN expression TO expression STEP expression statements . NEXT ID + (42) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + NEXT shift and go to state 429 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -28001,314 +28505,317 @@ state 402 expression shift and go to state 9 statement shift and go to state 46 -state 403 +state 414 - (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 .) + (43) statement -> FOR ID ASSIGN expression TO expression statements NEXT ID . + + DELETE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + DECLARE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PUBLIC reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PRIVATE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CONSTANT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + INPUT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + OUTPUT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + _OUTPUT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + IF reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CASE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + FOR reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + REPEAT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + WHILE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PROCEDURE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CALL reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + FUNCTION reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + RETURN reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + OPENFILE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + READFILE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + WRITEFILE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CLOSEFILE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + SEEK reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + TYPE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PASS reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + IMPORT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CLASS reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + LEFT_SQUARE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ID reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + NOT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + MINUS reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + PLUS reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + LEFT_PAREN reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + DATE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + BOOLEAN reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + CHAR reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + STRING reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + REAL reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + INTEGER reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + MOD reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + DIV reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + POINTER reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + NEW reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + $end reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + UNTIL reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDWHILE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDTYPE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDCLASS reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ELSE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDIF reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDPROCEDURE reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + SEMICOLON reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + NEXT reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) + ENDFUNCTION reduce using rule 43 (statement -> FOR ID ASSIGN expression TO expression statements NEXT ID .) -state 404 +state 415 - (79) declare_parameter -> BYREF ID COLON ARRAY OF ID . + (84) 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 .) + RIGHT_PAREN reduce using rule 84 (declare_parameter -> BYREF ID COLON ARRAY OF ID .) + COMMA reduce using rule 84 (declare_parameter -> BYREF ID COLON ARRAY OF ID .) -state 405 +state 416 - (80) declare_parameter -> BYVAL ID COLON ARRAY OF ID . + (85) 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 .) + RIGHT_PAREN reduce using rule 85 (declare_parameter -> BYVAL ID COLON ARRAY OF ID .) + COMMA reduce using rule 85 (declare_parameter -> BYVAL ID COLON ARRAY OF ID .) -state 406 +state 417 - (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 .) + (102) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 102 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 407 +state 418 - (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 .) + (103) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 103 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 408 +state 419 - (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (114) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -28353,126 +28860,129 @@ state 408 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 430 statement shift and go to state 2 expression shift and go to state 9 -state 409 +state 420 - (110) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (115) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 431 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -28519,239 +29029,242 @@ state 409 statement shift and go to state 46 expression shift and go to state 9 -state 410 +state 421 - (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 .) + (106) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 106 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 411 +state 422 - (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 .) + (107) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 107 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 412 +state 423 - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (116) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -28796,126 +29309,129 @@ state 412 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 432 statement shift and go to state 2 expression shift and go to state 9 -state 413 +state 424 - (112) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (117) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 433 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -28962,239 +29478,242 @@ state 413 statement shift and go to state 46 expression shift and go to state 9 -state 414 +state 425 - (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 .) + (110) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION . + + DELETE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DECLARE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PUBLIC reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PRIVATE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CONSTANT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INPUT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OUTPUT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IF reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CASE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FOR reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REPEAT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WHILE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CALL reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + FUNCTION reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + RETURN reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + OPENFILE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + READFILE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEEK reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + TYPE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PASS reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + IMPORT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CLASS reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ID reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NOT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MINUS reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + PLUS reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DATE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + CHAR reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + STRING reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + REAL reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + INTEGER reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + MOD reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + DIV reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + POINTER reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEW reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + $end reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + UNTIL reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ELSE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDIF reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + NEXT reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 110 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION .) -state 415 +state 426 - (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 .) + (111) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION . + + DELETE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DECLARE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PUBLIC reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PRIVATE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CONSTANT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INPUT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OUTPUT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + _OUTPUT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IF reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CASE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FOR reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REPEAT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WHILE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PROCEDURE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CALL reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + FUNCTION reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + RETURN reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + OPENFILE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + READFILE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + WRITEFILE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLOSEFILE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEEK reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + TYPE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PASS reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + IMPORT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CLASS reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ID reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NOT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MINUS reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + PLUS reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DATE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + BOOLEAN reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + CHAR reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + STRING reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + REAL reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + INTEGER reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + MOD reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + DIV reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + POINTER reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEW reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + $end reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + UNTIL reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDWHILE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDTYPE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDCLASS reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ELSE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDIF reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + SEMICOLON reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + NEXT reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 111 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION .) -state 416 +state 427 - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID . statements ENDFUNCTION + (118) 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 (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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN DELETE shift and go to state 3 DECLARE shift and go to state 5 @@ -29239,126 +29758,129 @@ state 416 POINTER shift and go to state 31 NEW shift and go to state 21 - statements shift and go to state 423 + statements shift and go to state 434 statement shift and go to state 2 expression shift and go to state 9 -state 417 +state 428 - (114) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (119) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 435 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29405,129 +29927,132 @@ state 417 statement shift and go to state 46 expression shift and go to state 9 -state 418 +state 429 - (37) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT . ID + (42) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT . ID - ID shift and go to state 425 + ID shift and go to state 436 -state 419 +state 430 - (109) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION + (114) 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 -> . 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 426 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 437 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29574,181 +30099,184 @@ state 419 statement shift and go to state 46 expression shift and go to state 9 -state 420 - - (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 421 - - (111) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION +state 431 + + (115) statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 115 (statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 432 + + (116) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 438 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -29795,181 +30323,184 @@ state 421 statement shift and go to state 46 expression shift and go to state 9 -state 422 - - (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 423 - - (113) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements . ENDFUNCTION +state 433 + + (117) statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 117 (statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 434 + + (118) 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 -> . 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 + (6) statement -> . DECLARE ids COLON ID + (7) statement -> . PUBLIC ids COLON ID + (10) statement -> . PRIVATE ID COLON ID + (11) statement -> . PRIVATE ids COLON ID + (12) statement -> . CONSTANT ID EQUAL expression + (13) statement -> . CONSTANT ID ASSIGN expression + (14) statement -> . DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (15) statement -> . PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (16) statement -> . PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID + (20) statement -> . expression ASSIGN expression + (27) statement -> . INPUT expression + (28) statement -> . OUTPUT output_expression + (29) statement -> . _OUTPUT output_expression + (32) statement -> . IF expression THEN statements ELSE statements ENDIF + (33) statement -> . IF expression THEN statements ENDIF + (34) statement -> . CASE OF expression cases ENDCASE + (42) statement -> . FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID + (43) statement -> . FOR ID ASSIGN expression TO expression statements NEXT ID + (44) statement -> . REPEAT statements UNTIL expression + (45) statement -> . WHILE expression DO statements ENDWHILE + (46) statement -> . WHILE expression statements ENDWHILE + (47) statement -> . expression + (88) statement -> . PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (89) statement -> . PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (90) statement -> . PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (91) statement -> . PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (92) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (93) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (94) statement -> . PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (95) statement -> . PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (96) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (97) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE + (98) statement -> . PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (99) statement -> . PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE + (100) statement -> . CALL ID LEFT_PAREN parameters RIGHT_PAREN + (101) statement -> . CALL ID LEFT_PAREN RIGHT_PAREN + (102) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (103) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (104) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (105) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (106) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (107) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (108) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (109) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (110) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (111) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (112) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION + (113) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION + (114) statement -> . FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (115) statement -> . FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (116) statement -> . PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (117) statement -> . PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (118) statement -> . PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (119) statement -> . PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION + (124) statement -> . RETURN expression + (125) statement -> . OPENFILE expression FOR READ + (126) statement -> . OPENFILE expression FOR WRITE + (127) statement -> . OPENFILE expression FOR APPEND + (128) statement -> . OPENFILE expression FOR RANDOM + (129) statement -> . READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE + (130) statement -> . READFILE expression COMMA ID + (131) statement -> . WRITEFILE expression COMMA expression + (132) statement -> . CLOSEFILE expression + (133) statement -> . SEEK expression COMMA expression + (134) statement -> . TYPE ID statements ENDTYPE + (136) statement -> . TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN + (141) statement -> . TYPE ID EQUAL POINTER ID + (142) statement -> . PASS + (143) statement -> . IMPORT expression + (144) statement -> . CLASS ID statements ENDCLASS + (145) statement -> . CLASS ID INHERITS ID statements ENDCLASS + (148) statement -> . TYPE ID EQUAL SET OF ID + (23) expression -> . LEFT_SQUARE array_items RIGHT_SQUARE + (24) expression -> . LEFT_SQUARE RIGHT_SQUARE + (48) expression -> . ID + (49) expression -> . ID LEFT_SQUARE indexes RIGHT_SQUARE + (50) expression -> . expression OR expression + (51) expression -> . expression AND expression + (52) expression -> . NOT expression + (53) expression -> . expression EQUAL expression + (54) expression -> . expression NOT_EQUAL expression + (55) expression -> . expression LESS expression + (56) expression -> . expression GREATER expression + (57) expression -> . expression LESS_EQUAL expression + (58) expression -> . expression GREATER_EQUAL expression + (59) expression -> . expression MOD expression + (60) expression -> . expression DIV expression + (61) expression -> . expression MUL expression + (62) expression -> . expression N_DIV expression + (63) expression -> . MINUS expression + (64) expression -> . PLUS expression + (65) expression -> . expression PLUS expression + (66) expression -> . expression MINUS expression + (67) expression -> . expression CONNECT expression + (68) expression -> . LEFT_PAREN expression RIGHT_PAREN + (69) expression -> . DATE + (70) expression -> . BOOLEAN + (71) expression -> . CHAR + (72) expression -> . STRING + (73) expression -> . REAL + (74) expression -> . INTEGER + (120) expression -> . ID LEFT_PAREN parameters RIGHT_PAREN + (121) expression -> . MOD LEFT_PAREN parameters RIGHT_PAREN + (122) expression -> . DIV LEFT_PAREN parameters RIGHT_PAREN + (123) expression -> . ID LEFT_PAREN RIGHT_PAREN + (135) expression -> . expression DOT expression + (139) expression -> . POINTER expression + (140) expression -> . expression POINTER + (146) expression -> . NEW ID + (147) expression -> . NEW ID LEFT_PAREN parameters RIGHT_PAREN + + ENDFUNCTION shift and go to state 439 DELETE shift and go to state 3 DECLARE shift and go to state 5 PUBLIC shift and go to state 6 @@ -30016,299 +30547,299 @@ state 423 statement shift and go to state 46 expression shift and go to state 9 -state 424 - - (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 - - (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 - - (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 .) +state 435 + + (119) statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 119 (statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 436 + + (42) statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID . + + DELETE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + DECLARE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PUBLIC reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PRIVATE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CONSTANT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + INPUT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + OUTPUT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + _OUTPUT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + IF reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CASE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + FOR reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + REPEAT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + WHILE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PROCEDURE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CALL reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + FUNCTION reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + RETURN reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + OPENFILE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + READFILE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + WRITEFILE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CLOSEFILE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + SEEK reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + TYPE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PASS reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + IMPORT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CLASS reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + LEFT_SQUARE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ID reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + NOT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + MINUS reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + PLUS reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + LEFT_PAREN reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + DATE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + BOOLEAN reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + CHAR reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + STRING reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + REAL reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + INTEGER reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + MOD reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + DIV reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + POINTER reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + NEW reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + $end reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + UNTIL reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDWHILE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDTYPE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDCLASS reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ELSE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDIF reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDPROCEDURE reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + SEMICOLON reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + NEXT reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + ENDFUNCTION reduce using rule 42 (statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID .) + + +state 437 + + (114) statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 114 (statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 438 + + (116) statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 116 (statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + + +state 439 + + (118) statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION . + + DELETE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DECLARE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PUBLIC reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PRIVATE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CONSTANT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INPUT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OUTPUT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + _OUTPUT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IF reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CASE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FOR reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REPEAT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WHILE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PROCEDURE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CALL reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + FUNCTION reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + RETURN reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + OPENFILE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + READFILE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + WRITEFILE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLOSEFILE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEEK reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + TYPE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PASS reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + IMPORT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CLASS reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_SQUARE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ID reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NOT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MINUS reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + PLUS reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + LEFT_PAREN reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DATE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + BOOLEAN reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + CHAR reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + STRING reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + REAL reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + INTEGER reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + MOD reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + DIV reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + POINTER reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEW reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + $end reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + UNTIL reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDWHILE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDTYPE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDCLASS reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ELSE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDIF reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDPROCEDURE reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + SEMICOLON reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + NEXT reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) + ENDFUNCTION reduce using rule 118 (statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION .) WARNING: WARNING: Conflicts: @@ -30320,132 +30851,135 @@ WARNING: shift/reduce conflict for DIV in state 9 resolved as shift WARNING: shift/reduce conflict for PLUS in state 9 resolved as shift WARNING: shift/reduce conflict for MINUS in state 9 resolved as shift WARNING: shift/reduce conflict for POINTER in state 9 resolved as shift -WARNING: shift/reduce conflict for MOD in state 79 resolved as shift -WARNING: shift/reduce conflict for DIV in state 79 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 79 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 79 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 79 resolved as shift -WARNING: shift/reduce conflict for MOD in state 81 resolved as shift -WARNING: shift/reduce conflict for DIV in state 81 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 81 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 81 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 81 resolved as shift -WARNING: shift/reduce conflict for LEFT_PAREN in state 91 resolved as shift -WARNING: shift/reduce conflict for MOD in state 94 resolved as shift -WARNING: shift/reduce conflict for DIV in state 94 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 94 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 94 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 94 resolved as shift -WARNING: shift/reduce conflict for MOD in state 98 resolved as shift -WARNING: shift/reduce conflict for DIV in state 98 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 98 resolved as shift -WARNING: shift/reduce conflict for MINUS in state 98 resolved as shift -WARNING: shift/reduce conflict for POINTER in state 98 resolved as shift -WARNING: shift/reduce conflict for OR in state 101 resolved as shift -WARNING: shift/reduce conflict for AND in state 101 resolved as shift -WARNING: shift/reduce conflict for EQUAL in state 101 resolved as shift -WARNING: shift/reduce conflict for NOT_EQUAL in state 101 resolved as shift -WARNING: shift/reduce conflict for LESS in state 101 resolved as shift -WARNING: shift/reduce conflict for GREATER in state 101 resolved as shift -WARNING: shift/reduce conflict for LESS_EQUAL in state 101 resolved as shift -WARNING: shift/reduce conflict for GREATER_EQUAL in state 101 resolved as shift +WARNING: shift/reduce conflict for COLON in state 50 resolved as shift +WARNING: shift/reduce conflict for COLON in state 52 resolved as shift +WARNING: shift/reduce conflict for COLON in state 56 resolved as shift +WARNING: shift/reduce conflict for MOD in state 82 resolved as shift +WARNING: shift/reduce conflict for DIV in state 82 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 82 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 82 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 82 resolved as shift +WARNING: shift/reduce conflict for MOD in state 84 resolved as shift +WARNING: shift/reduce conflict for DIV in state 84 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 84 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 84 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 84 resolved as shift +WARNING: shift/reduce conflict for LEFT_PAREN in state 94 resolved as shift +WARNING: shift/reduce conflict for MOD in state 97 resolved as shift +WARNING: shift/reduce conflict for DIV in state 97 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 97 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 97 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 97 resolved as shift WARNING: shift/reduce conflict for MOD in state 101 resolved as shift WARNING: shift/reduce conflict for DIV in state 101 resolved as shift -WARNING: shift/reduce conflict for MUL in state 101 resolved as shift -WARNING: shift/reduce conflict for N_DIV in state 101 resolved as shift WARNING: shift/reduce conflict for PLUS in state 101 resolved as shift WARNING: shift/reduce conflict for MINUS in state 101 resolved as shift -WARNING: shift/reduce conflict for CONNECT in state 101 resolved as shift -WARNING: shift/reduce conflict for DOT in state 101 resolved as shift WARNING: shift/reduce conflict for POINTER in state 101 resolved as shift -WARNING: shift/reduce conflict for MOD in state 102 resolved as shift -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 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 -WARNING: shift/reduce conflict for NOT_EQUAL in state 140 resolved as shift -WARNING: shift/reduce conflict for LESS in state 140 resolved as shift -WARNING: shift/reduce conflict for GREATER in state 140 resolved as shift -WARNING: shift/reduce conflict for LESS_EQUAL in state 140 resolved as shift -WARNING: shift/reduce conflict for GREATER_EQUAL in state 140 resolved as shift -WARNING: shift/reduce conflict for MOD in state 140 resolved as shift -WARNING: shift/reduce conflict for DIV in state 140 resolved as shift -WARNING: shift/reduce conflict for MUL in state 140 resolved as shift -WARNING: shift/reduce conflict for N_DIV in state 140 resolved as shift -WARNING: shift/reduce conflict for PLUS in state 140 resolved as shift -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 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 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 OR in state 104 resolved as shift +WARNING: shift/reduce conflict for AND in state 104 resolved as shift +WARNING: shift/reduce conflict for EQUAL in state 104 resolved as shift +WARNING: shift/reduce conflict for NOT_EQUAL in state 104 resolved as shift +WARNING: shift/reduce conflict for LESS in state 104 resolved as shift +WARNING: shift/reduce conflict for GREATER in state 104 resolved as shift +WARNING: shift/reduce conflict for LESS_EQUAL in state 104 resolved as shift +WARNING: shift/reduce conflict for GREATER_EQUAL in state 104 resolved as shift +WARNING: shift/reduce conflict for MOD in state 104 resolved as shift +WARNING: shift/reduce conflict for DIV in state 104 resolved as shift +WARNING: shift/reduce conflict for MUL in state 104 resolved as shift +WARNING: shift/reduce conflict for N_DIV in state 104 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 104 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 104 resolved as shift +WARNING: shift/reduce conflict for CONNECT in state 104 resolved as shift +WARNING: shift/reduce conflict for DOT in state 104 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 104 resolved as shift +WARNING: shift/reduce conflict for MOD in state 105 resolved as shift +WARNING: shift/reduce conflict for DIV in state 105 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 105 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 105 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 105 resolved as shift +WARNING: shift/reduce conflict for MOD in state 132 resolved as shift +WARNING: shift/reduce conflict for DIV in state 132 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 132 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 132 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 132 resolved as shift +WARNING: shift/reduce conflict for OR in state 147 resolved as shift +WARNING: shift/reduce conflict for AND in state 147 resolved as shift +WARNING: shift/reduce conflict for EQUAL in state 147 resolved as shift +WARNING: shift/reduce conflict for NOT_EQUAL in state 147 resolved as shift +WARNING: shift/reduce conflict for LESS in state 147 resolved as shift +WARNING: shift/reduce conflict for GREATER in state 147 resolved as shift +WARNING: shift/reduce conflict for LESS_EQUAL in state 147 resolved as shift +WARNING: shift/reduce conflict for GREATER_EQUAL in state 147 resolved as shift +WARNING: shift/reduce conflict for MOD in state 147 resolved as shift +WARNING: shift/reduce conflict for DIV in state 147 resolved as shift +WARNING: shift/reduce conflict for MUL in state 147 resolved as shift +WARNING: shift/reduce conflict for N_DIV in state 147 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 147 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 147 resolved as shift +WARNING: shift/reduce conflict for CONNECT in state 147 resolved as shift +WARNING: shift/reduce conflict for DOT in state 147 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 147 resolved as shift +WARNING: shift/reduce conflict for OR in state 148 resolved as shift +WARNING: shift/reduce conflict for AND in state 148 resolved as shift +WARNING: shift/reduce conflict for EQUAL in state 148 resolved as shift +WARNING: shift/reduce conflict for NOT_EQUAL in state 148 resolved as shift +WARNING: shift/reduce conflict for LESS in state 148 resolved as shift +WARNING: shift/reduce conflict for GREATER in state 148 resolved as shift +WARNING: shift/reduce conflict for LESS_EQUAL in state 148 resolved as shift +WARNING: shift/reduce conflict for GREATER_EQUAL in state 148 resolved as shift +WARNING: shift/reduce conflict for MOD in state 148 resolved as shift +WARNING: shift/reduce conflict for DIV in state 148 resolved as shift +WARNING: shift/reduce conflict for MUL in state 148 resolved as shift +WARNING: shift/reduce conflict for N_DIV in state 148 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 148 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 148 resolved as shift +WARNING: shift/reduce conflict for CONNECT in state 148 resolved as shift +WARNING: shift/reduce conflict for DOT in state 148 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 148 resolved as shift +WARNING: shift/reduce conflict for LEFT_SQUARE in state 162 resolved as shift +WARNING: shift/reduce conflict for ID in state 162 resolved as shift +WARNING: shift/reduce conflict for NOT in state 162 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 162 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 162 resolved as shift +WARNING: shift/reduce conflict for LEFT_PAREN in state 162 resolved as shift +WARNING: shift/reduce conflict for DATE in state 162 resolved as shift +WARNING: shift/reduce conflict for BOOLEAN in state 162 resolved as shift +WARNING: shift/reduce conflict for CHAR in state 162 resolved as shift +WARNING: shift/reduce conflict for STRING in state 162 resolved as shift +WARNING: shift/reduce conflict for REAL in state 162 resolved as shift +WARNING: shift/reduce conflict for INTEGER in state 162 resolved as shift +WARNING: shift/reduce conflict for MOD in state 162 resolved as shift +WARNING: shift/reduce conflict for DIV in state 162 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 162 resolved as shift +WARNING: shift/reduce conflict for NEW in state 162 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 +WARNING: shift/reduce conflict for MOD in state 202 resolved as shift +WARNING: shift/reduce conflict for DIV in state 202 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 202 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 202 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 202 resolved as shift +WARNING: shift/reduce conflict for MOD in state 211 resolved as shift +WARNING: shift/reduce conflict for DIV in state 211 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 211 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 211 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 211 resolved as shift +WARNING: shift/reduce conflict for LEFT_SQUARE in state 235 resolved as shift +WARNING: shift/reduce conflict for MOD in state 236 resolved as shift +WARNING: shift/reduce conflict for DIV in state 236 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 236 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 236 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 236 resolved as shift +WARNING: shift/reduce conflict for MOD in state 237 resolved as shift +WARNING: shift/reduce conflict for DIV in state 237 resolved as shift +WARNING: shift/reduce conflict for PLUS in state 237 resolved as shift +WARNING: shift/reduce conflict for MINUS in state 237 resolved as shift +WARNING: shift/reduce conflict for POINTER in state 237 resolved as shift +WARNING: shift/reduce conflict for RIGHT_PAREN in state 273 resolved as shift +WARNING: reduce/reduce conflict in state 216 resolved using rule (expression -> PLUS expression) +WARNING: rejected rule (expression -> expression PLUS expression) in state 216 +WARNING: reduce/reduce conflict in state 217 resolved using rule (expression -> MINUS expression) +WARNING: rejected rule (expression -> expression MINUS expression) in state 217 diff --git a/parsetab.py b/parsetab.py index e328eac..899af52 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 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_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 : DECLARE ids COLON ID\n | PUBLIC ids COLON IDids : ids COMMA ID\n | IDstatement : PRIVATE ID COLON IDstatement : PRIVATE ids 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,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_items = {'DELETE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[3,3,-2,-48,-47,3,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,3,3,-146,-124,-132,3,-139,-143,3,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,3,3,3,-140,-68,3,3,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,3,-44,3,-46,-64,-63,3,3,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,3,-121,-122,3,3,3,3,3,-33,-34,3,3,-45,3,3,3,3,-147,-100,-141,3,3,3,3,3,3,3,3,3,3,3,3,3,3,-90,3,-91,3,3,-136,-148,-145,3,-94,3,-95,3,3,3,-98,3,-99,3,3,-32,3,-88,-89,3,3,3,3,-129,-92,-93,3,3,3,3,-96,-97,3,3,3,3,3,3,3,-104,-105,3,-14,-15,3,3,-108,-109,3,-16,3,3,-112,-113,3,3,-43,-102,-103,3,3,-106,-107,3,3,-110,-111,3,3,3,-115,3,-117,3,-119,-42,-114,-116,-118,]),'DECLARE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[5,5,-2,-48,-47,5,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,5,5,-146,-124,-132,5,-139,-143,5,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,5,5,5,-140,-68,5,5,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,5,-44,5,-46,-64,-63,5,5,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,5,-121,-122,5,5,5,5,5,-33,-34,5,5,-45,5,5,5,5,-147,-100,-141,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-90,5,-91,5,5,-136,-148,-145,5,-94,5,-95,5,5,5,-98,5,-99,5,5,-32,5,-88,-89,5,5,5,5,-129,-92,-93,5,5,5,5,-96,-97,5,5,5,5,5,5,5,-104,-105,5,-14,-15,5,5,-108,-109,5,-16,5,5,-112,-113,5,5,-43,-102,-103,5,5,-106,-107,5,5,-110,-111,5,5,5,-115,5,-117,5,-119,-42,-114,-116,-118,]),'PUBLIC':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[6,6,-2,-48,-47,6,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,6,6,-146,-124,-132,6,-139,-143,6,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,6,6,6,-140,-68,6,6,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,6,-44,6,-46,-64,-63,6,6,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,6,-121,-122,6,6,6,6,6,-33,-34,6,6,-45,6,6,6,6,-147,-100,-141,6,6,6,6,6,6,6,6,6,6,6,6,6,6,-90,6,-91,6,6,-136,-148,-145,6,-94,6,-95,6,6,6,-98,6,-99,6,6,-32,6,-88,-89,6,6,6,6,-129,-92,-93,6,6,6,6,-96,-97,6,6,6,6,6,6,6,-104,-105,6,-14,-15,6,6,-108,-109,6,-16,6,6,-112,-113,6,6,-43,-102,-103,6,6,-106,-107,6,6,-110,-111,6,6,6,-115,6,-117,6,-119,-42,-114,-116,-118,]),'PRIVATE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[7,7,-2,-48,-47,7,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,7,7,-146,-124,-132,7,-139,-143,7,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,7,7,7,-140,-68,7,7,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,7,-44,7,-46,-64,-63,7,7,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,7,-121,-122,7,7,7,7,7,-33,-34,7,7,-45,7,7,7,7,-147,-100,-141,7,7,7,7,7,7,7,7,7,7,7,7,7,7,-90,7,-91,7,7,-136,-148,-145,7,-94,7,-95,7,7,7,-98,7,-99,7,7,-32,7,-88,-89,7,7,7,7,-129,-92,-93,7,7,7,7,-96,-97,7,7,7,7,7,7,7,-104,-105,7,-14,-15,7,7,-108,-109,7,-16,7,7,-112,-113,7,7,-43,-102,-103,7,7,-106,-107,7,7,-110,-111,7,7,7,-115,7,-117,7,-119,-42,-114,-116,-118,]),'CONSTANT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[8,8,-2,-48,-47,8,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,8,8,-146,-124,-132,8,-139,-143,8,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,8,8,8,-140,-68,8,8,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,8,-44,8,-46,-64,-63,8,8,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,8,-121,-122,8,8,8,8,8,-33,-34,8,8,-45,8,8,8,8,-147,-100,-141,8,8,8,8,8,8,8,8,8,8,8,8,8,8,-90,8,-91,8,8,-136,-148,-145,8,-94,8,-95,8,8,8,-98,8,-99,8,8,-32,8,-88,-89,8,8,8,8,-129,-92,-93,8,8,8,8,-96,-97,8,8,8,8,8,8,8,-104,-105,8,-14,-15,8,8,-108,-109,8,-16,8,8,-112,-113,8,8,-43,-102,-103,8,8,-106,-107,8,8,-110,-111,8,8,8,-115,8,-117,8,-119,-42,-114,-116,-118,]),'INPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[11,11,-2,-48,-47,11,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,11,11,-146,-124,-132,11,-139,-143,11,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,11,11,11,-140,-68,11,11,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,11,-44,11,-46,-64,-63,11,11,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,11,-121,-122,11,11,11,11,11,-33,-34,11,11,-45,11,11,11,11,-147,-100,-141,11,11,11,11,11,11,11,11,11,11,11,11,11,11,-90,11,-91,11,11,-136,-148,-145,11,-94,11,-95,11,11,11,-98,11,-99,11,11,-32,11,-88,-89,11,11,11,11,-129,-92,-93,11,11,11,11,-96,-97,11,11,11,11,11,11,11,-104,-105,11,-14,-15,11,11,-108,-109,11,-16,11,11,-112,-113,11,11,-43,-102,-103,11,11,-106,-107,11,11,-110,-111,11,11,11,-115,11,-117,11,-119,-42,-114,-116,-118,]),'OUTPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[12,12,-2,-48,-47,12,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,12,12,-146,-124,-132,12,-139,-143,12,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,12,12,12,-140,-68,12,12,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,12,-44,12,-46,-64,-63,12,12,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,12,-121,-122,12,12,12,12,12,-33,-34,12,12,-45,12,12,12,12,-147,-100,-141,12,12,12,12,12,12,12,12,12,12,12,12,12,12,-90,12,-91,12,12,-136,-148,-145,12,-94,12,-95,12,12,12,-98,12,-99,12,12,-32,12,-88,-89,12,12,12,12,-129,-92,-93,12,12,12,12,-96,-97,12,12,12,12,12,12,12,-104,-105,12,-14,-15,12,12,-108,-109,12,-16,12,12,-112,-113,12,12,-43,-102,-103,12,12,-106,-107,12,12,-110,-111,12,12,12,-115,12,-117,12,-119,-42,-114,-116,-118,]),'_OUTPUT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[13,13,-2,-48,-47,13,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,13,13,-146,-124,-132,13,-139,-143,13,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,13,13,13,-140,-68,13,13,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,13,-44,13,-46,-64,-63,13,13,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,13,-121,-122,13,13,13,13,13,-33,-34,13,13,-45,13,13,13,13,-147,-100,-141,13,13,13,13,13,13,13,13,13,13,13,13,13,13,-90,13,-91,13,13,-136,-148,-145,13,-94,13,-95,13,13,13,-98,13,-99,13,13,-32,13,-88,-89,13,13,13,13,-129,-92,-93,13,13,13,13,-96,-97,13,13,13,13,13,13,13,-104,-105,13,-14,-15,13,13,-108,-109,13,-16,13,13,-112,-113,13,13,-43,-102,-103,13,13,-106,-107,13,13,-110,-111,13,13,13,-115,13,-117,13,-119,-42,-114,-116,-118,]),'IF':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[14,14,-2,-48,-47,14,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,14,14,-146,-124,-132,14,-139,-143,14,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,14,14,14,-140,-68,14,14,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,14,-44,14,-46,-64,-63,14,14,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,14,-121,-122,14,14,14,14,14,-33,-34,14,14,-45,14,14,14,14,-147,-100,-141,14,14,14,14,14,14,14,14,14,14,14,14,14,14,-90,14,-91,14,14,-136,-148,-145,14,-94,14,-95,14,14,14,-98,14,-99,14,14,-32,14,-88,-89,14,14,14,14,-129,-92,-93,14,14,14,14,-96,-97,14,14,14,14,14,14,14,-104,-105,14,-14,-15,14,14,-108,-109,14,-16,14,14,-112,-113,14,14,-43,-102,-103,14,14,-106,-107,14,14,-110,-111,14,14,14,-115,14,-117,14,-119,-42,-114,-116,-118,]),'CASE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[15,15,-2,-48,-47,15,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,15,15,-146,-124,-132,15,-139,-143,15,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,15,15,15,-140,-68,15,15,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,15,-44,15,-46,-64,-63,15,15,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,15,-121,-122,15,15,15,15,15,-33,-34,15,15,-45,15,15,15,15,-147,-100,-141,15,15,15,15,15,15,15,15,15,15,15,15,15,15,-90,15,-91,15,15,-136,-148,-145,15,-94,15,-95,15,15,15,-98,15,-99,15,15,-32,15,-88,-89,15,15,15,15,-129,-92,-93,15,15,15,15,-96,-97,15,15,15,15,15,15,15,-104,-105,15,-14,-15,15,15,-108,-109,15,-16,15,15,-112,-113,15,15,-43,-102,-103,15,15,-106,-107,15,15,-110,-111,15,15,15,-115,15,-117,15,-119,-42,-114,-116,-118,]),'FOR':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,98,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[16,16,-2,-48,-47,16,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,16,16,-146,-124,169,-132,16,-139,-143,16,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,16,16,16,-140,-68,16,16,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,16,-44,16,-46,-64,-63,16,16,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,16,-121,-122,16,16,16,16,16,-33,-34,16,16,-45,16,16,16,16,-147,-100,-141,16,16,16,16,16,16,16,16,16,16,16,16,16,16,-90,16,-91,16,16,-136,-148,-145,16,-94,16,-95,16,16,16,-98,16,-99,16,16,-32,16,-88,-89,16,16,16,16,-129,-92,-93,16,16,16,16,-96,-97,16,16,16,16,16,16,16,-104,-105,16,-14,-15,16,16,-108,-109,16,-16,16,16,-112,-113,16,16,-43,-102,-103,16,16,-106,-107,16,16,-110,-111,16,16,16,-115,16,-117,16,-119,-42,-114,-116,-118,]),'REPEAT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[17,17,-2,-48,-47,17,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,17,17,-146,-124,-132,17,-139,-143,17,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,17,17,17,-140,-68,17,17,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,17,-44,17,-46,-64,-63,17,17,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,17,-121,-122,17,17,17,17,17,-33,-34,17,17,-45,17,17,17,17,-147,-100,-141,17,17,17,17,17,17,17,17,17,17,17,17,17,17,-90,17,-91,17,17,-136,-148,-145,17,-94,17,-95,17,17,17,-98,17,-99,17,17,-32,17,-88,-89,17,17,17,17,-129,-92,-93,17,17,17,17,-96,-97,17,17,17,17,17,17,17,-104,-105,17,-14,-15,17,17,-108,-109,17,-16,17,17,-112,-113,17,17,-43,-102,-103,17,17,-106,-107,17,17,-110,-111,17,17,17,-115,17,-117,17,-119,-42,-114,-116,-118,]),'WHILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[18,18,-2,-48,-47,18,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,18,18,-146,-124,-132,18,-139,-143,18,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,18,18,18,-140,-68,18,18,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,18,-44,18,-46,-64,-63,18,18,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,18,-121,-122,18,18,18,18,18,-33,-34,18,18,-45,18,18,18,18,-147,-100,-141,18,18,18,18,18,18,18,18,18,18,18,18,18,18,-90,18,-91,18,18,-136,-148,-145,18,-94,18,-95,18,18,18,-98,18,-99,18,18,-32,18,-88,-89,18,18,18,18,-129,-92,-93,18,18,18,18,-96,-97,18,18,18,18,18,18,18,-104,-105,18,-14,-15,18,18,-108,-109,18,-16,18,18,-112,-113,18,18,-43,-102,-103,18,18,-106,-107,18,18,-110,-111,18,18,18,-115,18,-117,18,-119,-42,-114,-116,-118,]),'PROCEDURE':([0,1,2,4,6,7,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[19,19,-2,-48,54,58,-47,19,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,19,19,-146,-124,-132,19,-139,-143,19,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,19,19,19,-140,-68,19,19,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,19,-44,19,-46,-64,-63,19,19,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,19,-121,-122,19,19,19,19,19,-33,-34,19,19,-45,19,19,19,19,-147,-100,-141,19,19,19,19,19,19,19,19,19,19,19,19,19,19,-90,19,-91,19,19,-136,-148,-145,19,-94,19,-95,19,19,19,-98,19,-99,19,19,-32,19,-88,-89,19,19,19,19,-129,-92,-93,19,19,19,19,-96,-97,19,19,19,19,19,19,19,-104,-105,19,-14,-15,19,19,-108,-109,19,-16,19,19,-112,-113,19,19,-43,-102,-103,19,19,-106,-107,19,19,-110,-111,19,19,19,-115,19,-117,19,-119,-42,-114,-116,-118,]),'CALL':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[22,22,-2,-48,-47,22,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,22,22,-146,-124,-132,22,-139,-143,22,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,22,22,22,-140,-68,22,22,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,22,-44,22,-46,-64,-63,22,22,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,22,-121,-122,22,22,22,22,22,-33,-34,22,22,-45,22,22,22,22,-147,-100,-141,22,22,22,22,22,22,22,22,22,22,22,22,22,22,-90,22,-91,22,22,-136,-148,-145,22,-94,22,-95,22,22,22,-98,22,-99,22,22,-32,22,-88,-89,22,22,22,22,-129,-92,-93,22,22,22,22,-96,-97,22,22,22,22,22,22,22,-104,-105,22,-14,-15,22,22,-108,-109,22,-16,22,22,-112,-113,22,22,-43,-102,-103,22,22,-106,-107,22,22,-110,-111,22,22,22,-115,22,-117,22,-119,-42,-114,-116,-118,]),'FUNCTION':([0,1,2,4,6,7,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[23,23,-2,-48,55,59,-47,23,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,23,23,-146,-124,-132,23,-139,-143,23,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,23,23,23,-140,-68,23,23,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,23,-44,23,-46,-64,-63,23,23,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,23,-121,-122,23,23,23,23,23,-33,-34,23,23,-45,23,23,23,23,-147,-100,-141,23,23,23,23,23,23,23,23,23,23,23,23,23,23,-90,23,-91,23,23,-136,-148,-145,23,-94,23,-95,23,23,23,-98,23,-99,23,23,-32,23,-88,-89,23,23,23,23,-129,-92,-93,23,23,23,23,-96,-97,23,23,23,23,23,23,23,-104,-105,23,-14,-15,23,23,-108,-109,23,-16,23,23,-112,-113,23,23,-43,-102,-103,23,23,-106,-107,23,23,-110,-111,23,23,23,-115,23,-117,23,-119,-42,-114,-116,-118,]),'RETURN':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[24,24,-2,-48,-47,24,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,24,24,-146,-124,-132,24,-139,-143,24,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,24,24,24,-140,-68,24,24,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,24,-44,24,-46,-64,-63,24,24,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,24,-121,-122,24,24,24,24,24,-33,-34,24,24,-45,24,24,24,24,-147,-100,-141,24,24,24,24,24,24,24,24,24,24,24,24,24,24,-90,24,-91,24,24,-136,-148,-145,24,-94,24,-95,24,24,24,-98,24,-99,24,24,-32,24,-88,-89,24,24,24,24,-129,-92,-93,24,24,24,24,-96,-97,24,24,24,24,24,24,24,-104,-105,24,-14,-15,24,24,-108,-109,24,-16,24,24,-112,-113,24,24,-43,-102,-103,24,24,-106,-107,24,24,-110,-111,24,24,24,-115,24,-117,24,-119,-42,-114,-116,-118,]),'OPENFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[25,25,-2,-48,-47,25,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,25,25,-146,-124,-132,25,-139,-143,25,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,25,25,25,-140,-68,25,25,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,25,-44,25,-46,-64,-63,25,25,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,25,-121,-122,25,25,25,25,25,-33,-34,25,25,-45,25,25,25,25,-147,-100,-141,25,25,25,25,25,25,25,25,25,25,25,25,25,25,-90,25,-91,25,25,-136,-148,-145,25,-94,25,-95,25,25,25,-98,25,-99,25,25,-32,25,-88,-89,25,25,25,25,-129,-92,-93,25,25,25,25,-96,-97,25,25,25,25,25,25,25,-104,-105,25,-14,-15,25,25,-108,-109,25,-16,25,25,-112,-113,25,25,-43,-102,-103,25,25,-106,-107,25,25,-110,-111,25,25,25,-115,25,-117,25,-119,-42,-114,-116,-118,]),'READFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[26,26,-2,-48,-47,26,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,26,26,-146,-124,-132,26,-139,-143,26,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,26,26,26,-140,-68,26,26,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,26,-44,26,-46,-64,-63,26,26,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,26,-121,-122,26,26,26,26,26,-33,-34,26,26,-45,26,26,26,26,-147,-100,-141,26,26,26,26,26,26,26,26,26,26,26,26,26,26,-90,26,-91,26,26,-136,-148,-145,26,-94,26,-95,26,26,26,-98,26,-99,26,26,-32,26,-88,-89,26,26,26,26,-129,-92,-93,26,26,26,26,-96,-97,26,26,26,26,26,26,26,-104,-105,26,-14,-15,26,26,-108,-109,26,-16,26,26,-112,-113,26,26,-43,-102,-103,26,26,-106,-107,26,26,-110,-111,26,26,26,-115,26,-117,26,-119,-42,-114,-116,-118,]),'WRITEFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[27,27,-2,-48,-47,27,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,27,27,-146,-124,-132,27,-139,-143,27,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,27,27,27,-140,-68,27,27,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,27,-44,27,-46,-64,-63,27,27,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,27,-121,-122,27,27,27,27,27,-33,-34,27,27,-45,27,27,27,27,-147,-100,-141,27,27,27,27,27,27,27,27,27,27,27,27,27,27,-90,27,-91,27,27,-136,-148,-145,27,-94,27,-95,27,27,27,-98,27,-99,27,27,-32,27,-88,-89,27,27,27,27,-129,-92,-93,27,27,27,27,-96,-97,27,27,27,27,27,27,27,-104,-105,27,-14,-15,27,27,-108,-109,27,-16,27,27,-112,-113,27,27,-43,-102,-103,27,27,-106,-107,27,27,-110,-111,27,27,27,-115,27,-117,27,-119,-42,-114,-116,-118,]),'CLOSEFILE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[28,28,-2,-48,-47,28,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,28,28,-146,-124,-132,28,-139,-143,28,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,28,28,28,-140,-68,28,28,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,28,-44,28,-46,-64,-63,28,28,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,28,-121,-122,28,28,28,28,28,-33,-34,28,28,-45,28,28,28,28,-147,-100,-141,28,28,28,28,28,28,28,28,28,28,28,28,28,28,-90,28,-91,28,28,-136,-148,-145,28,-94,28,-95,28,28,28,-98,28,-99,28,28,-32,28,-88,-89,28,28,28,28,-129,-92,-93,28,28,28,28,-96,-97,28,28,28,28,28,28,28,-104,-105,28,-14,-15,28,28,-108,-109,28,-16,28,28,-112,-113,28,28,-43,-102,-103,28,28,-106,-107,28,28,-110,-111,28,28,28,-115,28,-117,28,-119,-42,-114,-116,-118,]),'SEEK':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[29,29,-2,-48,-47,29,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,29,29,-146,-124,-132,29,-139,-143,29,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,29,29,29,-140,-68,29,29,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,29,-44,29,-46,-64,-63,29,29,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,29,-121,-122,29,29,29,29,29,-33,-34,29,29,-45,29,29,29,29,-147,-100,-141,29,29,29,29,29,29,29,29,29,29,29,29,29,29,-90,29,-91,29,29,-136,-148,-145,29,-94,29,-95,29,29,29,-98,29,-99,29,29,-32,29,-88,-89,29,29,29,29,-129,-92,-93,29,29,29,29,-96,-97,29,29,29,29,29,29,29,-104,-105,29,-14,-15,29,29,-108,-109,29,-16,29,29,-112,-113,29,29,-43,-102,-103,29,29,-106,-107,29,29,-110,-111,29,29,29,-115,29,-117,29,-119,-42,-114,-116,-118,]),'TYPE':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[30,30,-2,-48,-47,30,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,30,30,-146,-124,-132,30,-139,-143,30,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,30,30,30,-140,-68,30,30,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,30,-44,30,-46,-64,-63,30,30,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,30,-121,-122,30,30,30,30,30,-33,-34,30,30,-45,30,30,30,30,-147,-100,-141,30,30,30,30,30,30,30,30,30,30,30,30,30,30,-90,30,-91,30,30,-136,-148,-145,30,-94,30,-95,30,30,30,-98,30,-99,30,30,-32,30,-88,-89,30,30,30,30,-129,-92,-93,30,30,30,30,-96,-97,30,30,30,30,30,30,30,-104,-105,30,-14,-15,30,30,-108,-109,30,-16,30,30,-112,-113,30,30,-43,-102,-103,30,30,-106,-107,30,30,-110,-111,30,30,30,-115,30,-117,30,-119,-42,-114,-116,-118,]),'PASS':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[32,32,-2,-48,-47,32,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,32,32,-146,-124,-132,32,-139,-143,32,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,32,32,32,-140,-68,32,32,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,32,-44,32,-46,-64,-63,32,32,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,32,-121,-122,32,32,32,32,32,-33,-34,32,32,-45,32,32,32,32,-147,-100,-141,32,32,32,32,32,32,32,32,32,32,32,32,32,32,-90,32,-91,32,32,-136,-148,-145,32,-94,32,-95,32,32,32,-98,32,-99,32,32,-32,32,-88,-89,32,32,32,32,-129,-92,-93,32,32,32,32,-96,-97,32,32,32,32,32,32,32,-104,-105,32,-14,-15,32,32,-108,-109,32,-16,32,32,-112,-113,32,32,-43,-102,-103,32,32,-106,-107,32,32,-110,-111,32,32,32,-115,32,-117,32,-119,-42,-114,-116,-118,]),'IMPORT':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[33,33,-2,-48,-47,33,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,33,33,-146,-124,-132,33,-139,-143,33,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,33,33,33,-140,-68,33,33,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,33,-44,33,-46,-64,-63,33,33,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,33,-121,-122,33,33,33,33,33,-33,-34,33,33,-45,33,33,33,33,-147,-100,-141,33,33,33,33,33,33,33,33,33,33,33,33,33,33,-90,33,-91,33,33,-136,-148,-145,33,-94,33,-95,33,33,33,-98,33,-99,33,33,-32,33,-88,-89,33,33,33,33,-129,-92,-93,33,33,33,33,-96,-97,33,33,33,33,33,33,33,-104,-105,33,-14,-15,33,33,-108,-109,33,-16,33,33,-112,-113,33,33,-43,-102,-103,33,33,-106,-107,33,33,-110,-111,33,33,33,-115,33,-117,33,-119,-42,-114,-116,-118,]),'CLASS':([0,1,2,4,9,17,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,90,94,97,101,103,104,105,106,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,152,156,157,162,165,173,175,179,181,183,185,187,189,193,195,199,200,202,203,211,212,213,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,251,253,258,260,263,264,266,268,270,272,275,277,280,281,282,283,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,335,336,337,338,340,341,343,344,345,346,348,349,350,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[34,34,-2,-48,-47,34,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,34,34,-146,-124,-132,34,-139,-143,34,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,34,34,34,-140,-68,34,34,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,34,-44,34,-46,-64,-63,34,34,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,34,-121,-122,34,34,34,34,34,-33,-34,34,34,-45,34,34,34,34,-147,-100,-141,34,34,34,34,34,34,34,34,34,34,34,34,34,34,-90,34,-91,34,34,-136,-148,-145,34,-94,34,-95,34,34,34,-98,34,-99,34,34,-32,34,-88,-89,34,34,34,34,-129,-92,-93,34,34,34,34,-96,-97,34,34,34,34,34,34,34,-104,-105,34,-14,-15,34,34,-108,-109,34,-16,34,34,-112,-113,34,34,-43,-102,-103,34,34,-106,-107,34,34,-110,-111,34,34,34,-115,34,-117,34,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,184,185,187,188,189,193,194,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[10,10,-2,48,-47,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-142,10,10,10,10,-69,-70,-71,-72,-73,-74,-1,-3,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-140,-24,-27,-28,-31,-29,10,10,10,-146,-124,-132,10,-139,-143,10,-52,10,10,-63,-64,-123,10,10,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,10,10,10,10,10,10,10,10,10,10,10,10,10,-68,10,10,10,10,10,10,-49,10,-120,10,-4,248,-6,-5,249,-7,-10,256,-11,-12,-13,-30,10,10,-36,-44,10,-46,10,10,-64,-63,10,10,-101,-125,-126,-127,-128,286,-131,-133,-134,-144,10,-121,-122,10,10,10,10,10,10,10,10,-33,10,-34,-35,10,-38,10,10,-45,10,10,10,10,-147,-100,10,-141,10,10,10,10,10,10,10,10,10,10,10,10,10,10,-90,10,-91,10,10,-136,-148,-145,10,10,10,-94,10,-95,10,10,10,-98,10,-99,10,10,-32,-37,10,10,-88,-89,10,10,10,10,-129,-92,-93,10,10,10,10,-96,-97,10,10,10,10,10,10,10,-104,-105,10,-14,-15,10,10,-108,-109,10,-16,10,10,-112,-113,10,10,-43,-102,-103,10,10,-106,-107,10,10,-110,-111,10,10,10,-115,10,-117,10,-119,-42,-114,-116,-118,]),'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,54,55,58,59,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,117,118,119,120,121,125,126,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,162,163,164,165,166,167,168,170,171,172,173,175,176,179,180,181,182,183,185,187,189,190,191,192,193,195,196,197,198,199,200,202,203,205,206,211,212,213,214,215,216,217,220,222,223,225,228,231,232,233,234,235,236,237,238,239,240,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,274,275,276,277,280,281,282,283,285,286,289,290,291,296,297,298,299,301,303,304,305,306,308,309,311,312,313,316,318,319,320,321,322,323,324,325,327,328,329,330,332,333,335,336,337,338,339,340,341,343,344,345,346,347,348,349,350,351,352,353,354,355,360,361,362,363,364,365,366,368,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,],[4,4,-2,47,-48,50,52,56,60,-47,4,4,4,4,4,88,4,4,91,4,94,95,96,4,4,4,4,4,4,103,4,-142,4,106,4,4,4,-69,-70,-71,-72,-73,-74,-1,-3,4,4,122,124,127,129,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,-140,-24,-27,-28,-31,-29,4,4,4,-146,-124,-132,4,-139,-143,4,-52,4,4,-63,-64,-123,183,185,186,187,189,193,195,4,4,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,4,4,4,4,4,4,4,4,4,4,4,4,4,218,218,-68,4,4,218,235,4,4,4,4,243,-49,4,-120,4,-4,-6,-5,-7,218,218,218,-10,-11,218,218,218,-12,-13,-30,4,4,-36,-44,4,-46,4,4,-64,-63,4,278,279,4,-101,-125,-126,-127,-128,-130,-131,-133,-134,287,289,-144,4,-121,-122,4,4,4,4,4,4,4,4,-33,4,-34,-35,4,-38,4,4,-45,314,4,218,4,4,4,-147,-100,324,4,-141,329,4,4,4,4,4,340,4,4,4,4,348,4,4,4,4,4,-90,356,358,4,-91,361,4,4,-136,367,-148,-145,4,4,4,-94,4,-95,374,4,4,4,-98,4,-99,382,4,4,-32,-37,4,4,389,-88,-89,4,4,4,4,397,-129,398,399,-92,-93,4,4,4,4,405,406,-96,-97,4,4,4,4,412,4,414,415,416,4,4,419,-104,-105,4,-14,-15,4,4,423,-108,-109,4,-16,4,4,427,-112,-113,4,4,-43,-102,-103,4,4,-106,-107,4,4,-110,-111,4,4,436,4,-115,4,-117,4,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[35,35,-2,-48,-47,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-142,35,35,35,35,-69,-70,-71,-72,-73,-74,-1,-3,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-140,-24,-27,-28,-31,-29,35,35,35,-146,-124,-132,35,-139,-143,35,-52,35,35,-63,-64,-123,35,35,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,35,35,35,35,35,35,35,35,35,35,35,35,35,-68,35,35,35,35,35,35,-49,35,-120,35,-4,-6,-5,-7,-10,-11,-12,-13,-30,35,35,-36,-44,35,-46,35,35,-64,-63,35,35,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,35,-121,-122,35,35,35,35,35,35,35,35,-33,35,-34,-35,35,-38,35,35,-45,35,35,35,35,-147,-100,35,-141,35,35,35,35,35,35,35,35,35,35,35,35,35,35,-90,35,-91,35,35,-136,-148,-145,35,35,35,-94,35,-95,35,35,35,-98,35,-99,35,35,-32,-37,35,35,-88,-89,35,35,35,35,-129,-92,-93,35,35,35,35,-96,-97,35,35,35,35,35,35,35,-104,-105,35,-14,-15,35,35,-108,-109,35,-16,35,35,-112,-113,35,35,-43,-102,-103,35,35,-106,-107,35,35,-110,-111,35,35,35,-115,35,-117,35,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,89,90,93,94,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,115,116,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,201,202,203,204,205,206,210,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,246,247,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,273,275,277,280,281,282,283,286,289,291,294,296,297,298,299,303,304,305,306,309,310,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,370,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[38,38,-2,-48,75,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-142,38,38,38,38,-69,-70,-71,-72,-73,-74,-1,-3,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-140,-24,75,75,-28,75,-29,75,38,38,161,75,-146,75,75,75,75,75,75,38,75,75,38,75,38,38,-63,-64,75,-123,75,38,38,75,75,75,75,75,75,75,75,75,-59,-60,-61,-62,-65,-66,75,75,-23,38,38,38,161,38,38,38,38,38,38,38,38,38,-68,38,38,38,38,38,38,-49,38,-120,38,-4,-6,-5,-7,-10,-11,75,75,75,75,38,75,38,-36,75,75,38,-46,38,38,-64,-63,38,38,-101,-125,-126,-127,-128,-130,75,75,-134,-144,38,-121,-122,75,75,38,38,38,38,38,38,38,38,-33,38,-34,-35,38,-38,38,38,-45,75,38,38,38,38,-147,-100,38,-141,38,75,38,38,38,38,38,38,38,38,38,75,38,38,161,38,-90,38,-91,38,38,-136,-148,-145,38,38,38,-94,38,-95,38,38,38,-98,38,-99,38,38,-32,-37,38,38,-88,-89,38,38,38,38,-129,75,-92,-93,38,38,38,38,-96,-97,38,38,38,38,161,38,38,-104,-105,38,-14,-15,38,38,-108,-109,38,-16,38,38,-112,-113,38,38,-43,-102,-103,38,38,-106,-107,38,38,-110,-111,38,38,38,-115,38,-117,38,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,89,90,93,94,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,115,116,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,201,202,203,204,205,206,210,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,246,247,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,273,275,277,280,281,282,283,286,289,291,294,296,297,298,299,303,304,305,306,309,310,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,370,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[39,39,-2,-48,74,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,-142,39,39,39,39,-69,-70,-71,-72,-73,-74,-1,-3,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,-140,-24,74,74,-28,74,-29,74,39,39,160,74,-146,74,74,74,74,74,74,39,74,74,39,74,39,39,-63,-64,74,-123,74,39,39,74,74,74,74,74,74,74,74,74,-59,-60,-61,-62,-65,-66,74,74,-23,39,39,39,160,39,39,39,39,39,39,39,39,39,-68,39,39,39,39,39,39,-49,39,-120,39,-4,-6,-5,-7,-10,-11,74,74,74,74,39,74,39,-36,74,74,39,-46,39,39,-64,-63,39,39,-101,-125,-126,-127,-128,-130,74,74,-134,-144,39,-121,-122,74,74,39,39,39,39,39,39,39,39,-33,39,-34,-35,39,-38,39,39,-45,74,39,39,39,39,-147,-100,39,-141,39,74,39,39,39,39,39,39,39,39,39,74,39,39,160,39,-90,39,-91,39,39,-136,-148,-145,39,39,39,-94,39,-95,39,39,39,-98,39,-99,39,39,-32,-37,39,39,-88,-89,39,39,39,39,-129,74,-92,-93,39,39,39,39,-96,-97,39,39,39,39,160,39,39,-104,-105,39,-14,-15,39,39,-108,-109,39,-16,39,39,-112,-113,39,39,-43,-102,-103,39,39,-106,-107,39,39,-110,-111,39,39,39,-115,39,-117,39,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,91,92,94,95,96,97,101,103,104,105,106,107,108,109,110,111,115,122,123,124,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,162,165,166,167,171,172,173,174,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[20,20,-2,49,-47,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-142,20,20,108,109,20,20,-69,-70,-71,-72,-73,-74,-1,-3,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-140,-24,-27,-28,-31,-29,20,20,20,163,164,166,167,168,-124,-132,20,-139,-143,20,-52,20,20,-63,-64,-123,190,191,192,196,197,198,20,20,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,20,20,20,20,20,20,20,20,214,215,20,20,20,-68,20,20,20,20,20,239,20,-49,20,-120,20,-4,-6,-5,-7,-10,-11,-12,-13,-30,20,20,-36,-44,20,-46,20,20,-64,-63,20,20,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,20,-121,-122,20,20,20,20,20,20,20,20,-33,20,-34,-35,20,-38,20,20,-45,20,20,20,20,-147,-100,20,-141,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-90,20,-91,20,20,-136,-148,-145,20,20,20,-94,20,-95,20,20,20,-98,20,-99,20,20,-32,-37,20,20,-88,-89,20,20,20,20,-129,-92,-93,20,20,20,20,-96,-97,20,20,20,20,20,20,20,-104,-105,20,-14,-15,20,20,-108,-109,20,-16,20,20,-112,-113,20,20,-43,-102,-103,20,20,-106,-107,20,20,-110,-111,20,20,20,-115,20,-117,20,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[40,40,-2,-48,-47,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-142,40,40,40,40,-69,-70,-71,-72,-73,-74,-1,-3,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-140,-24,-27,-28,-31,-29,40,40,40,-146,-124,-132,40,-139,-143,40,-52,40,40,-63,-64,-123,40,40,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,40,40,40,40,40,40,40,40,40,40,40,40,40,-68,40,40,40,40,40,40,-49,40,-120,40,-4,-6,-5,-7,-10,-11,-12,-13,-30,40,40,-36,-44,40,-46,40,40,-64,-63,40,40,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,40,-121,-122,40,40,40,40,40,40,40,40,-33,40,-34,-35,40,-38,40,40,-45,40,40,40,40,-147,-100,40,-141,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-90,40,-91,40,40,-136,-148,-145,40,40,40,-94,40,-95,40,40,40,-98,40,-99,40,40,-32,-37,40,40,-88,-89,40,40,40,40,-129,-92,-93,40,40,40,40,-96,-97,40,40,40,40,40,40,40,-104,-105,40,-14,-15,40,40,-108,-109,40,-16,40,40,-112,-113,40,40,-43,-102,-103,40,40,-106,-107,40,40,-110,-111,40,40,40,-115,40,-117,40,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[41,41,-2,-48,-47,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-142,41,41,41,41,-69,-70,-71,-72,-73,-74,-1,-3,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-140,-24,-27,-28,-31,-29,41,41,41,-146,-124,-132,41,-139,-143,41,-52,41,41,-63,-64,-123,41,41,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,41,41,41,41,41,41,41,41,41,41,41,41,41,-68,41,41,41,41,41,41,-49,41,-120,41,-4,-6,-5,-7,-10,-11,-12,-13,-30,41,41,-36,-44,41,-46,41,41,-64,-63,41,41,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,41,-121,-122,41,41,41,41,41,41,41,41,-33,41,-34,-35,41,-38,41,41,-45,41,41,41,41,-147,-100,41,-141,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-90,41,-91,41,41,-136,-148,-145,41,41,41,-94,41,-95,41,41,41,-98,41,-99,41,41,-32,-37,41,41,-88,-89,41,41,41,41,-129,-92,-93,41,41,41,41,-96,-97,41,41,41,41,41,41,41,-104,-105,41,-14,-15,41,41,-108,-109,41,-16,41,41,-112,-113,41,41,-43,-102,-103,41,41,-106,-107,41,41,-110,-111,41,41,41,-115,41,-117,41,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[42,42,-2,-48,-47,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-142,42,42,42,42,-69,-70,-71,-72,-73,-74,-1,-3,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-140,-24,-27,-28,-31,-29,42,42,42,-146,-124,-132,42,-139,-143,42,-52,42,42,-63,-64,-123,42,42,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,42,42,42,42,42,42,42,42,42,42,42,42,42,-68,42,42,42,42,42,42,-49,42,-120,42,-4,-6,-5,-7,-10,-11,-12,-13,-30,42,42,-36,-44,42,-46,42,42,-64,-63,42,42,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,42,-121,-122,42,42,42,42,42,42,42,42,-33,42,-34,-35,42,-38,42,42,-45,42,42,42,42,-147,-100,42,-141,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-90,42,-91,42,42,-136,-148,-145,42,42,42,-94,42,-95,42,42,42,-98,42,-99,42,42,-32,-37,42,42,-88,-89,42,42,42,42,-129,-92,-93,42,42,42,42,-96,-97,42,42,42,42,42,42,42,-104,-105,42,-14,-15,42,42,-108,-109,42,-16,42,42,-112,-113,42,42,-43,-102,-103,42,42,-106,-107,42,42,-110,-111,42,42,42,-115,42,-117,42,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[43,43,-2,-48,-47,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-142,43,43,43,43,-69,-70,-71,-72,-73,-74,-1,-3,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-140,-24,-27,-28,-31,-29,43,43,43,-146,-124,-132,43,-139,-143,43,-52,43,43,-63,-64,-123,43,43,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,43,43,43,43,43,43,43,43,43,43,43,43,43,-68,43,43,43,43,43,43,-49,43,-120,43,-4,-6,-5,-7,-10,-11,-12,-13,-30,43,43,-36,-44,43,-46,43,43,-64,-63,43,43,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,43,-121,-122,43,43,43,43,43,43,43,43,-33,43,-34,-35,43,-38,43,43,-45,43,43,43,43,-147,-100,43,-141,43,43,43,43,43,43,43,43,43,43,43,43,43,43,-90,43,-91,43,43,-136,-148,-145,43,43,43,-94,43,-95,43,43,43,-98,43,-99,43,43,-32,-37,43,43,-88,-89,43,43,43,43,-129,-92,-93,43,43,43,43,-96,-97,43,43,43,43,43,43,43,-104,-105,43,-14,-15,43,43,-108,-109,43,-16,43,43,-112,-113,43,43,-43,-102,-103,43,43,-106,-107,43,43,-110,-111,43,43,43,-115,43,-117,43,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[44,44,-2,-48,-47,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-142,44,44,44,44,-69,-70,-71,-72,-73,-74,-1,-3,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-140,-24,-27,-28,-31,-29,44,44,44,-146,-124,-132,44,-139,-143,44,-52,44,44,-63,-64,-123,44,44,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,44,44,44,44,44,44,44,44,44,44,44,44,44,-68,44,44,44,44,44,44,-49,44,-120,44,-4,-6,-5,-7,-10,-11,-12,-13,-30,44,44,-36,-44,44,-46,44,44,-64,-63,44,44,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,44,-121,-122,44,44,44,44,44,44,44,44,-33,44,-34,-35,44,-38,44,44,-45,44,44,44,44,-147,-100,44,-141,44,44,44,44,44,44,44,44,44,44,44,44,44,44,-90,44,-91,44,44,-136,-148,-145,44,44,44,-94,44,-95,44,44,44,-98,44,-99,44,44,-32,-37,44,44,-88,-89,44,44,44,44,-129,-92,-93,44,44,44,44,-96,-97,44,44,44,44,44,44,44,-104,-105,44,-14,-15,44,44,-108,-109,44,-16,44,44,-112,-113,44,44,-43,-102,-103,44,44,-106,-107,44,44,-110,-111,44,44,44,-115,44,-117,44,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[45,45,-2,-48,-47,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-142,45,45,45,45,-69,-70,-71,-72,-73,-74,-1,-3,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-140,-24,-27,-28,-31,-29,45,45,45,-146,-124,-132,45,-139,-143,45,-52,45,45,-63,-64,-123,45,45,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,45,45,45,45,45,45,45,45,45,45,45,45,45,-68,45,45,45,45,45,45,-49,45,-120,45,-4,-6,-5,-7,-10,-11,-12,-13,-30,45,45,-36,-44,45,-46,45,45,-64,-63,45,45,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,45,-121,-122,45,45,45,45,45,45,45,45,-33,45,-34,-35,45,-38,45,45,-45,45,45,45,45,-147,-100,45,-141,45,45,45,45,45,45,45,45,45,45,45,45,45,45,-90,45,-91,45,45,-136,-148,-145,45,45,45,-94,45,-95,45,45,45,-98,45,-99,45,45,-32,-37,45,45,-88,-89,45,45,45,45,-129,-92,-93,45,45,45,45,-96,-97,45,45,45,45,45,45,45,-104,-105,45,-14,-15,45,45,-108,-109,45,-16,45,45,-112,-113,45,45,-43,-102,-103,45,45,-106,-107,45,45,-110,-111,45,45,45,-115,45,-117,45,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,89,90,93,94,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,115,116,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,201,202,203,204,205,206,210,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,246,247,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,273,275,277,280,281,282,283,286,289,291,294,296,297,298,299,303,304,305,306,309,310,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,370,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[36,36,-2,-48,70,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-142,36,36,36,36,-69,-70,-71,-72,-73,-74,-1,-3,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-140,-24,70,70,-28,70,-29,70,36,36,158,70,-146,70,70,70,70,70,70,36,70,70,36,70,36,36,-63,-64,70,-123,70,36,36,70,70,70,70,70,70,70,70,70,-59,-60,-61,-62,70,70,70,70,-23,36,36,36,158,36,36,36,36,36,36,36,36,36,-68,36,36,36,36,36,36,-49,36,-120,36,-4,-6,-5,-7,-10,-11,70,70,70,70,36,70,36,-36,70,70,36,-46,36,36,-64,-63,36,36,-101,-125,-126,-127,-128,-130,70,70,-134,-144,36,-121,-122,70,70,36,36,36,36,36,36,36,36,-33,36,-34,-35,36,-38,36,36,-45,70,36,36,36,36,-147,-100,36,-141,36,70,36,36,36,36,36,36,36,36,36,70,36,36,158,36,-90,36,-91,36,36,-136,-148,-145,36,36,36,-94,36,-95,36,36,36,-98,36,-99,36,36,-32,-37,36,36,-88,-89,36,36,36,36,-129,70,-92,-93,36,36,36,36,-96,-97,36,36,36,36,158,36,36,-104,-105,36,-14,-15,36,36,-108,-109,36,-16,36,36,-112,-113,36,36,-43,-102,-103,36,36,-106,-107,36,36,-110,-111,36,36,36,-115,36,-117,36,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,89,90,93,94,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,115,116,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,201,202,203,204,205,206,210,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,246,247,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,273,275,277,280,281,282,283,286,289,291,294,296,297,298,299,303,304,305,306,309,310,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,370,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[37,37,-2,-48,71,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-142,37,37,37,37,-69,-70,-71,-72,-73,-74,-1,-3,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-140,-24,71,71,-28,71,-29,71,37,37,159,71,-146,71,71,71,71,71,71,37,71,71,37,71,37,37,-63,-64,71,-123,71,37,37,71,71,71,71,71,71,71,71,71,-59,-60,-61,-62,71,71,71,71,-23,37,37,37,159,37,37,37,37,37,37,37,37,37,-68,37,37,37,37,37,37,-49,37,-120,37,-4,-6,-5,-7,-10,-11,71,71,71,71,37,71,37,-36,71,71,37,-46,37,37,-64,-63,37,37,-101,-125,-126,-127,-128,-130,71,71,-134,-144,37,-121,-122,71,71,37,37,37,37,37,37,37,37,-33,37,-34,-35,37,-38,37,37,-45,71,37,37,37,37,-147,-100,37,-141,37,71,37,37,37,37,37,37,37,37,37,71,37,37,159,37,-90,37,-91,37,37,-136,-148,-145,37,37,37,-94,37,-95,37,37,37,-98,37,-99,37,37,-32,-37,37,37,-88,-89,37,37,37,37,-129,71,-92,-93,37,37,37,37,-96,-97,37,37,37,37,159,37,37,-104,-105,37,-14,-15,37,37,-108,-109,37,-16,37,37,-112,-113,37,37,-43,-102,-103,37,37,-106,-107,37,37,-110,-111,37,37,37,-115,37,-117,37,-119,-42,-114,-116,-118,]),'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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,89,90,93,94,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,115,116,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,162,165,166,167,171,172,173,174,175,179,180,181,182,183,185,187,189,193,195,199,200,201,202,203,204,205,206,210,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,246,247,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,273,275,277,280,281,282,283,286,289,291,294,296,297,298,299,303,304,305,306,309,310,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,370,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[31,31,-2,-48,78,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,-142,31,31,31,31,-69,-70,-71,-72,-73,-74,-1,-3,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,-140,-24,78,78,-28,78,-29,78,31,31,162,78,-146,78,78,78,78,78,78,31,78,78,31,-52,31,31,-63,-64,78,-123,78,31,31,78,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,78,78,-23,31,31,31,162,31,31,31,31,31,31,31,31,31,-68,31,31,31,31,31,240,31,-49,31,-120,31,-4,-6,-5,-7,-10,-11,-12,78,78,78,31,78,31,-36,78,78,31,-46,31,31,-64,-63,31,31,-101,-125,-126,-127,-128,-130,78,78,-134,-144,31,-121,-122,78,78,31,31,31,31,31,31,31,31,-33,31,-34,-35,31,-38,31,31,-45,78,31,31,31,31,-147,-100,31,-141,31,78,31,31,31,31,31,31,31,31,31,78,31,31,162,31,-90,31,-91,31,31,-136,-148,-145,31,31,31,-94,31,-95,31,31,31,-98,31,-99,31,31,-32,-37,31,31,-88,-89,31,31,31,31,-129,78,-92,-93,31,31,31,31,-96,-97,31,31,31,31,162,31,31,-104,-105,31,-14,-15,31,31,-108,-109,31,-16,31,31,-112,-113,31,31,-43,-102,-103,31,31,-106,-107,31,31,-110,-111,31,31,31,-115,31,-117,31,-119,-42,-114,-116,-118,]),'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,54,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,80,82,83,84,85,87,89,90,94,97,101,103,104,105,106,107,108,109,110,111,115,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,162,165,166,167,171,172,173,175,179,180,181,182,183,185,187,189,193,195,199,200,202,203,205,206,211,212,213,214,215,216,217,220,225,228,231,232,233,234,235,236,237,238,242,243,244,245,248,249,251,253,256,258,260,263,264,265,266,267,268,269,270,271,272,275,277,280,281,282,283,286,289,291,296,297,298,299,303,304,305,306,309,311,312,313,316,318,321,322,324,325,327,329,330,332,333,335,336,337,338,340,341,343,344,345,346,348,349,350,351,352,353,355,360,361,362,363,364,366,372,373,374,375,376,377,380,381,382,383,384,385,387,392,393,395,396,397,398,399,400,401,403,404,405,406,407,408,410,411,412,413,414,417,418,419,420,421,422,423,424,425,426,427,428,430,431,432,433,434,435,436,437,438,439,],[21,21,-2,-48,-47,21,21,21,21,21,21,21,92,21,21,21,21,21,21,21,21,-142,21,21,21,21,-69,-70,-71,-72,-73,-74,-1,-3,21,21,123,128,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,-140,-24,-27,-28,-31,-29,21,21,21,-146,-124,-132,21,-139,-143,21,-52,21,21,-63,-64,-123,21,21,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,21,21,21,21,21,21,21,21,21,21,21,21,21,-68,21,21,21,21,21,21,-49,21,-120,21,-4,-6,-5,-7,-10,-11,-12,-13,-30,21,21,-36,-44,21,-46,21,21,-64,-63,21,21,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,21,-121,-122,21,21,21,21,21,21,21,21,-33,21,-34,-35,21,-38,21,21,-45,21,21,21,21,-147,-100,21,-141,21,21,21,21,21,21,21,21,21,21,21,21,21,21,-90,21,-91,21,21,-136,-148,-145,21,21,21,-94,21,-95,21,21,21,-98,21,-99,21,21,-32,-37,21,21,-88,-89,21,21,21,21,-129,-92,-93,21,21,21,21,-96,-97,21,21,21,21,21,21,21,-104,-105,21,-14,-15,21,21,-108,-109,21,-16,21,21,-112,-113,21,21,-43,-102,-103,21,21,-106,-107,21,21,-110,-111,21,21,21,-115,21,-117,21,-119,-42,-114,-116,-118,]),'$end':([1,2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[0,-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'UNTIL':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,89,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,155,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ENDWHILE':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,157,165,179,181,183,185,187,189,193,195,199,200,202,211,212,213,216,217,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,213,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,272,-46,-64,-63,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ENDTYPE':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,173,179,181,183,185,187,189,193,195,199,200,202,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,238,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ENDCLASS':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,175,179,181,183,185,187,189,193,195,199,200,202,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,291,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,242,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,330,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ELSE':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,203,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,263,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ENDIF':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,203,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,309,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,264,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,350,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ENDPROCEDURE':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,277,281,282,283,289,297,299,304,306,316,318,321,322,327,329,330,335,336,337,338,343,344,345,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,318,322,-147,-100,-141,336,338,344,346,355,-90,360,-91,-136,-148,-145,372,-94,373,-95,380,-98,381,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'SEMICOLON':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,208,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,311,312,318,322,327,329,330,336,338,344,346,350,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,269,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,351,-41,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'NEXT':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,211,213,216,217,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,353,355,360,366,372,373,380,381,395,396,398,399,403,404,406,410,411,413,414,417,418,421,422,425,426,431,433,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-64,-63,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,388,-88,-89,-129,-92,-93,-96,-97,-104,-105,-14,-15,-108,-109,-16,-112,-113,429,-43,-102,-103,-106,-107,-110,-111,-115,-117,-119,-42,-114,-116,-118,]),'ENDFUNCTION':([2,4,9,32,40,41,42,43,44,45,46,47,78,80,82,83,84,85,94,97,101,104,105,107,110,111,115,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,183,185,187,189,193,195,199,200,202,211,213,228,231,232,233,234,235,236,237,238,242,244,245,264,266,272,282,283,289,318,322,327,329,330,336,338,344,346,350,355,360,363,364,366,372,373,376,377,380,381,384,385,392,393,395,396,398,399,400,401,403,404,406,407,408,410,411,414,417,418,420,421,422,424,425,426,428,430,431,432,433,434,435,436,437,438,439,],[-2,-48,-47,-142,-69,-70,-71,-72,-73,-74,-1,-3,-140,-24,-27,-28,-31,-29,-146,-124,-132,-139,-143,-52,-63,-64,-123,-20,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-4,-6,-5,-7,-10,-11,-12,-13,-30,-44,-46,-101,-125,-126,-127,-128,-130,-131,-133,-134,-144,-121,-122,-33,-34,-45,-147,-100,-141,-90,-91,-136,-148,-145,-94,-95,-98,-99,-32,-88,-89,395,396,-129,-92,-93,403,404,-96,-97,410,411,417,418,-104,-105,-14,-15,421,422,-108,-109,-16,425,426,-112,-113,-43,-102,-103,431,-106,-107,433,-110,-111,435,437,-115,438,-117,439,-119,-42,-114,-116,-118,]),'ASSIGN':([4,9,40,41,42,43,44,45,60,78,80,88,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,216,217,244,245,282,],[-48,61,-69,-70,-71,-72,-73,-74,131,-140,-24,154,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-64,-63,-121,-122,-147,]),'OR':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,62,-69,-70,-71,-72,-73,-74,-140,-24,62,62,62,62,62,62,-146,62,62,62,62,62,62,62,62,-52,-63,-64,62,-123,62,62,-50,62,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,62,62,-23,62,-140,-68,-49,-120,62,62,62,62,62,62,62,-64,-63,62,62,-121,-122,62,62,62,-147,62,62,62,62,62,]),'AND':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,63,-69,-70,-71,-72,-73,-74,-140,-24,63,63,63,63,63,63,-146,63,63,63,63,63,63,63,63,-52,-63,-64,63,-123,63,63,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,63,63,-23,63,-140,-68,-49,-120,63,63,63,63,63,63,63,-64,-63,63,63,-121,-122,63,63,63,-147,63,63,63,63,63,]),'EQUAL':([4,9,40,41,42,43,44,45,60,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,103,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,64,-69,-70,-71,-72,-73,-74,130,-140,-24,64,64,64,64,64,64,-146,64,64,64,64,64,64,174,64,64,64,-63,-64,64,-123,64,64,64,64,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,64,64,-23,64,-140,-68,-49,-120,64,64,64,64,64,64,64,-64,-63,64,64,-121,-122,64,64,64,-147,64,64,64,64,64,]),'NOT_EQUAL':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,65,-69,-70,-71,-72,-73,-74,-140,-24,65,65,65,65,65,65,-146,65,65,65,65,65,65,65,65,65,-63,-64,65,-123,65,65,65,65,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,65,65,-23,65,-140,-68,-49,-120,65,65,65,65,65,65,65,-64,-63,65,65,-121,-122,65,65,65,-147,65,65,65,65,65,]),'LESS':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,66,-69,-70,-71,-72,-73,-74,-140,-24,66,66,66,66,66,66,-146,66,66,66,66,66,66,66,66,66,-63,-64,66,-123,66,66,66,66,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,66,66,-23,66,-140,-68,-49,-120,66,66,66,66,66,66,66,-64,-63,66,66,-121,-122,66,66,66,-147,66,66,66,66,66,]),'GREATER':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,67,-69,-70,-71,-72,-73,-74,-140,-24,67,67,67,67,67,67,-146,67,67,67,67,67,67,67,67,67,-63,-64,67,-123,67,67,67,67,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,67,67,-23,67,-140,-68,-49,-120,67,67,67,67,67,67,67,-64,-63,67,67,-121,-122,67,67,67,-147,67,67,67,67,67,]),'LESS_EQUAL':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,68,-69,-70,-71,-72,-73,-74,-140,-24,68,68,68,68,68,68,-146,68,68,68,68,68,68,68,68,68,-63,-64,68,-123,68,68,68,68,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,68,68,-23,68,-140,-68,-49,-120,68,68,68,68,68,68,68,-64,-63,68,68,-121,-122,68,68,68,-147,68,68,68,68,68,]),'GREATER_EQUAL':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,69,-69,-70,-71,-72,-73,-74,-140,-24,69,69,69,69,69,69,-146,69,69,69,69,69,69,69,69,69,-63,-64,69,-123,69,69,69,69,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,69,69,-23,69,-140,-68,-49,-120,69,69,69,69,69,69,69,-64,-63,69,69,-121,-122,69,69,69,-147,69,69,69,69,69,]),'MUL':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,72,-69,-70,-71,-72,-73,-74,-140,-24,72,72,72,72,72,72,-146,72,72,72,72,72,72,72,72,72,-63,-64,72,-123,72,72,72,72,72,72,72,72,72,72,-59,-60,-61,-62,72,72,72,72,-23,72,-140,-68,-49,-120,72,72,72,72,72,72,72,-64,-63,72,72,-121,-122,72,72,72,-147,72,72,72,72,72,]),'N_DIV':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,73,-69,-70,-71,-72,-73,-74,-140,-24,73,73,73,73,73,73,-146,73,73,73,73,73,73,73,73,73,-63,-64,73,-123,73,73,73,73,73,73,73,73,73,73,-59,-60,-61,-62,73,73,73,73,-23,73,-140,-68,-49,-120,73,73,73,73,73,73,73,-64,-63,73,73,-121,-122,73,73,73,-147,73,73,73,73,73,]),'CONNECT':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,76,-69,-70,-71,-72,-73,-74,-140,-24,76,76,76,76,76,76,-146,76,76,76,76,76,76,76,76,-52,-63,-64,76,-123,76,76,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,76,76,-23,76,-140,-68,-49,-120,76,76,76,76,76,76,76,-64,-63,76,76,-121,-122,76,76,76,-147,76,76,76,76,76,]),'DOT':([4,9,40,41,42,43,44,45,78,80,81,82,84,86,90,93,94,97,98,99,100,101,102,104,105,107,110,111,113,115,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,199,200,201,202,204,210,211,216,217,236,237,244,245,246,247,273,282,294,310,313,370,387,],[-48,77,-69,-70,-71,-72,-73,-74,-140,-24,77,77,77,77,77,77,-146,77,77,77,77,77,77,77,77,-52,-63,-64,77,-123,77,77,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,77,77,-23,77,-140,-68,-49,-120,77,77,77,77,77,77,77,-64,-63,77,77,-121,-122,77,77,77,-147,77,77,77,77,77,]),'RIGHT_SQUARE':([4,10,40,41,42,43,44,45,78,79,80,81,94,104,107,110,111,112,113,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,201,244,245,246,282,292,293,295,302,326,369,370,],[-48,80,-69,-70,-71,-72,-73,-74,-140,149,-24,-26,-146,-139,-52,-63,-64,179,-22,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-25,-121,-122,-21,-147,331,-18,334,342,366,-17,-19,]),'COMMA':([4,40,41,42,43,44,45,50,51,52,53,56,57,78,79,80,81,83,84,85,94,99,100,102,104,107,110,111,112,113,114,115,116,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,177,178,179,181,186,201,202,219,221,224,226,227,229,244,245,246,247,250,252,254,257,259,261,273,282,287,288,292,293,295,302,314,315,317,326,356,357,358,359,367,369,370,389,415,416,],[-48,-69,-70,-71,-72,-73,-74,-9,119,-9,119,-9,119,-140,150,-24,-26,151,-31,151,-146,170,171,172,-139,-52,-63,-64,180,-22,182,-123,-87,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,182,182,-49,-120,-8,-25,-30,276,-76,276,182,182,276,-121,-122,-21,-86,276,276,276,276,276,276,-87,-147,-138,328,332,-18,332,332,-77,-78,-75,180,-79,-80,-81,-82,-137,-17,-19,-83,-84,-85,]),'THEN':([4,40,41,42,43,44,45,78,80,86,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,244,245,282,],[-48,-69,-70,-71,-72,-73,-74,-140,-24,152,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-121,-122,-147,]),'DO':([4,40,41,42,43,44,45,78,80,90,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,162,165,179,181,216,217,244,245,282,],[-48,-69,-70,-71,-72,-73,-74,-140,-24,156,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-140,-68,-49,-120,-65,-66,-121,-122,-147,]),'RIGHT_PAREN':([4,40,41,42,43,44,45,49,78,80,93,94,104,107,110,111,114,115,116,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,163,164,165,167,168,177,178,179,181,190,191,192,196,197,198,219,221,224,226,227,229,244,245,247,250,252,254,257,259,261,273,282,287,288,314,315,317,356,357,358,359,367,389,415,416,],[-48,-69,-70,-71,-72,-73,-74,115,-140,-24,165,-146,-139,-52,-63,-64,181,-123,-87,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,220,225,-68,228,230,244,245,-49,-120,251,253,255,258,260,262,275,-76,280,282,283,284,-121,-122,-86,296,298,300,303,305,307,165,-147,-138,327,-77,-78,-75,-79,-80,-81,-82,-137,-83,-84,-85,]),'OTHERWISE':([4,40,41,42,43,44,45,78,80,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,153,162,165,179,181,205,206,216,217,244,245,267,269,282,351,],[-48,-69,-70,-71,-72,-73,-74,-140,-24,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,209,-140,-68,-49,-120,209,-36,-65,-66,-121,-122,-35,-38,-147,-37,]),'TO':([4,40,41,42,43,44,45,78,80,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,204,210,216,217,244,245,282,],[-48,-69,-70,-71,-72,-73,-74,-140,-24,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,265,271,-64,-63,-121,-122,-147,]),'COLON':([4,40,41,42,43,44,45,50,51,52,53,56,57,78,80,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,165,179,181,186,204,207,209,216,217,218,244,245,278,279,282,294,310,],[-48,-69,-70,-71,-72,-73,-74,117,118,120,121,125,126,-140,-24,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-68,-49,-120,-8,-40,268,270,-64,-63,274,-121,-122,319,320,-147,333,-39,]),'STEP':([4,40,41,42,43,44,45,78,80,94,104,107,110,111,115,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,162,165,179,181,216,217,244,245,282,313,],[-48,-69,-70,-71,-72,-73,-74,-140,-24,-146,-139,-52,-63,-64,-123,-50,-51,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-65,-66,-67,-135,-23,-140,-68,-49,-120,-65,-66,-121,-122,-147,352,]),'OF':([15,241,315,325,331,334,341,342,349,357,359,362,375,383,],[87,290,354,365,368,371,378,379,386,390,391,394,402,409,]),'INHERITS':([106,],[176,]),'ARRAY':([117,120,125,274,285,301,308,319,320,323,339,347,],[184,188,194,315,325,341,349,357,359,362,375,383,]),'BYREF':([163,164,168,190,191,192,196,197,198,276,],[222,222,222,222,222,222,222,222,222,222,]),'BYVAL':([163,164,168,190,191,192,196,197,198,276,],[223,223,223,223,223,223,223,223,223,223,]),'READ':([169,],[231,]),'WRITE':([169,],[232,]),'APPEND':([169,],[233,]),'RANDOM':([169,],[234,]),'SET':([174,],[241,]),'ENDCASE':([205,206,267,269,351,],[266,-36,-35,-38,-37,]),'RETURNS':([230,255,262,284,300,307,],[285,301,308,323,339,347,]),} _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,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_items = {'statements':([0,17,90,103,106,152,156,220,225,243,251,253,258,260,263,268,270,275,280,296,298,303,305,313,324,325,340,341,348,349,361,362,374,375,382,383,387,397,405,412,419,423,427,],[1,89,157,173,175,203,212,277,281,291,297,299,304,306,309,311,312,316,321,335,337,343,345,353,363,364,376,377,384,385,392,393,400,401,407,408,413,420,424,428,430,432,434,]),'statement':([0,1,17,89,90,103,106,152,156,157,173,175,203,212,220,225,243,251,253,258,260,263,268,270,275,277,280,281,291,296,297,298,299,303,304,305,306,309,311,312,313,316,321,324,325,335,337,340,341,343,345,348,349,353,361,362,363,364,374,375,376,377,382,383,384,385,387,392,393,397,400,401,405,407,408,412,413,419,420,423,424,427,428,430,432,434,],[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,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,87,89,90,103,106,108,109,130,131,150,151,152,153,154,155,156,157,158,159,160,161,162,166,167,171,172,173,175,180,182,203,205,212,214,215,220,225,243,248,249,251,253,256,258,260,263,265,268,270,271,275,277,280,281,286,291,296,297,298,299,303,304,305,306,309,311,312,313,316,321,324,325,332,333,335,337,340,341,343,345,348,349,352,353,361,362,363,364,374,375,376,377,382,383,384,385,387,392,393,397,400,401,405,407,408,412,413,419,420,423,424,427,428,430,432,434,],[9,9,81,82,84,84,86,9,90,93,97,98,99,100,101,102,104,105,107,110,111,113,116,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,153,9,9,9,9,116,116,199,200,201,202,9,204,210,211,9,9,141,142,216,217,104,116,116,236,237,9,9,246,247,9,204,9,273,273,9,9,9,294,294,9,9,294,9,9,9,310,9,9,313,9,9,9,9,113,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,294,370,9,9,9,9,9,9,9,9,387,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,]),'ids':([5,6,7,],[51,53,57,]),'array_items':([10,],[79,]),'output_expression':([12,13,],[83,85,]),'indexes':([48,286,],[112,326,]),'parameters':([49,108,109,166,167,214,215,],[114,177,178,226,227,177,178,]),'cases':([153,],[205,]),'case':([153,205,],[206,267,]),'case_expression':([153,205,],[207,207,]),'otherwise_statement':([153,205,],[208,208,]),'declare_parameters':([163,164,168,190,191,192,196,197,198,],[219,224,229,250,252,254,257,259,261,]),'declare_parameter':([163,164,168,190,191,192,196,197,198,276,],[221,221,221,221,221,221,221,221,221,317,]),'enumerate_items':([239,],[288,]),'dimensions':([248,249,256,],[292,295,302,]),'dimension':([248,249,256,332,],[293,293,293,369,]),} _lr_goto = {} for _k, _v in _lr_goto_items.items(): @@ -32,142 +32,147 @@ ('statement -> DELETE ID','statement',2,'p_delete_statement','parse.py',44), ('statement -> DECLARE ID COLON ID','statement',4,'p_declare_statement','parse.py',48), ('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 -> 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), + ('statement -> DECLARE ids COLON ID','statement',4,'p_multi_declare_statement','parse.py',53), + ('statement -> PUBLIC ids COLON ID','statement',4,'p_multi_declare_statement','parse.py',54), + ('ids -> ids COMMA ID','ids',3,'p_multi_id_expression','parse.py',58), + ('ids -> ID','ids',1,'p_multi_id_expression','parse.py',59), + ('statement -> PRIVATE ID COLON ID','statement',4,'p_private_declare_statement','parse.py',68), + ('statement -> PRIVATE ids COLON ID','statement',4,'p_private_multi_declare_statement','parse.py',72), + ('statement -> CONSTANT ID EQUAL expression','statement',4,'p_const_declare_statement','parse.py',76), + ('statement -> CONSTANT ID ASSIGN expression','statement',4,'p_const_declare_statement','parse.py',77), + ('statement -> DECLARE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_array_declare_statement','parse.py',81), + ('statement -> PUBLIC ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_array_declare_statement','parse.py',82), + ('statement -> PRIVATE ID COLON ARRAY LEFT_SQUARE dimensions RIGHT_SQUARE OF ID','statement',9,'p_private_array_declare_statement','parse.py',86), + ('dimensions -> dimensions COMMA dimension','dimensions',3,'p_dimensions_expression','parse.py',90), + ('dimensions -> dimension','dimensions',1,'p_dimensions_expression','parse.py',91), + ('dimension -> expression COLON expression','dimension',3,'p_dimension_expression','parse.py',100), + ('statement -> expression ASSIGN expression','statement',3,'p_new_assign_statement','parse.py',112), + ('indexes -> indexes COMMA expression','indexes',3,'p_indexes','parse.py',116), + ('indexes -> expression','indexes',1,'p_indexes','parse.py',117), + ('expression -> LEFT_SQUARE array_items RIGHT_SQUARE','expression',3,'p_array_expression','parse.py',126), + ('expression -> LEFT_SQUARE RIGHT_SQUARE','expression',2,'p_array_expression','parse.py',127), + ('array_items -> array_items COMMA expression','array_items',3,'p_array_items','parse.py',134), + ('array_items -> expression','array_items',1,'p_array_items','parse.py',135), + ('statement -> INPUT expression','statement',2,'p_new_input_statement','parse.py',152), + ('statement -> OUTPUT output_expression','statement',2,'p_output_statement','parse.py',156), + ('statement -> _OUTPUT output_expression','statement',2,'p_no_end_output_statement','parse.py',160), + ('output_expression -> output_expression COMMA expression','output_expression',3,'p_output_expression','parse.py',164), + ('output_expression -> expression','output_expression',1,'p_output_expression','parse.py',165), + ('statement -> IF expression THEN statements ELSE statements ENDIF','statement',7,'p_if_statement','parse.py',174), + ('statement -> IF expression THEN statements ENDIF','statement',5,'p_if_statement','parse.py',175), + ('statement -> CASE OF expression cases ENDCASE','statement',5,'p_new_case_statement','parse.py',190), + ('cases -> cases case','cases',2,'p_cases','parse.py',194), + ('cases -> case','cases',1,'p_cases','parse.py',195), + ('case -> case_expression COLON statements SEMICOLON','case',4,'p_case','parse.py',204), + ('case -> otherwise_statement SEMICOLON','case',2,'p_case','parse.py',205), + ('case_expression -> expression TO expression','case_expression',3,'p_case_expression','parse.py',212), + ('case_expression -> expression','case_expression',1,'p_case_expression','parse.py',213), + ('otherwise_statement -> OTHERWISE COLON statements','otherwise_statement',3,'p_otherwise_statement','parse.py',220), + ('statement -> FOR ID ASSIGN expression TO expression STEP expression statements NEXT ID','statement',11,'p_for_statement','parse.py',224), + ('statement -> FOR ID ASSIGN expression TO expression statements NEXT ID','statement',9,'p_for_statement','parse.py',225), + ('statement -> REPEAT statements UNTIL expression','statement',4,'p_repeat_statement','parse.py',232), + ('statement -> WHILE expression DO statements ENDWHILE','statement',5,'p_while_statement','parse.py',236), + ('statement -> WHILE expression statements ENDWHILE','statement',4,'p_while_statement','parse.py',237), + ('statement -> expression','statement',1,'p_expression_statement','parse.py',244), + ('expression -> ID','expression',1,'p_id_expression','parse.py',248), + ('expression -> ID LEFT_SQUARE indexes RIGHT_SQUARE','expression',4,'p_array_id_expression','parse.py',252), + ('expression -> expression OR expression','expression',3,'p_or_expression','parse.py',256), + ('expression -> expression AND expression','expression',3,'p_and_expression','parse.py',260), + ('expression -> NOT expression','expression',2,'p_not_expression','parse.py',264), + ('expression -> expression EQUAL expression','expression',3,'p_equal_expression','parse.py',268), + ('expression -> expression NOT_EQUAL expression','expression',3,'p_not_equal_expression','parse.py',272), + ('expression -> expression LESS expression','expression',3,'p_less_expression','parse.py',276), + ('expression -> expression GREATER expression','expression',3,'p_greater_expression','parse.py',280), + ('expression -> expression LESS_EQUAL expression','expression',3,'p_less_equal_expression','parse.py',284), + ('expression -> expression GREATER_EQUAL expression','expression',3,'p_greater_equal_expression','parse.py',288), + ('expression -> expression MOD expression','expression',3,'p_mod_expression','parse.py',292), + ('expression -> expression DIV expression','expression',3,'p_exact_div_expression','parse.py',296), + ('expression -> expression MUL expression','expression',3,'p_mul_expression','parse.py',300), + ('expression -> expression N_DIV expression','expression',3,'p_div_expression','parse.py',304), + ('expression -> MINUS expression','expression',2,'p_uminus_expression','parse.py',308), + ('expression -> PLUS expression','expression',2,'p_uplus_expression','parse.py',312), + ('expression -> expression PLUS expression','expression',3,'p_plus_expression','parse.py',316), + ('expression -> expression MINUS expression','expression',3,'p_minus_expression','parse.py',320), + ('expression -> expression CONNECT expression','expression',3,'p_connect_expression','parse.py',324), + ('expression -> LEFT_PAREN expression RIGHT_PAREN','expression',3,'p_paren_expression','parse.py',329), + ('expression -> DATE','expression',1,'p_date_expression','parse.py',334), + ('expression -> BOOLEAN','expression',1,'p_boolean_expression','parse.py',338), + ('expression -> CHAR','expression',1,'p_char_expression','parse.py',342), + ('expression -> STRING','expression',1,'p_string_expression','parse.py',346), + ('expression -> REAL','expression',1,'p_real_expression','parse.py',350), + ('expression -> INTEGER','expression',1,'p_int_expression','parse.py',354), + ('declare_parameters -> declare_parameters COMMA declare_parameter','declare_parameters',3,'p_declare_parameters','parse.py',360), + ('declare_parameters -> declare_parameter','declare_parameters',1,'p_declare_parameters','parse.py',361), + ('declare_parameter -> ID COLON ID','declare_parameter',3,'p_declare_parameter','parse.py',370), + ('declare_parameter -> ID COLON ARRAY','declare_parameter',3,'p_declare_parameter','parse.py',371), + ('declare_parameter -> BYREF ID COLON ID','declare_parameter',4,'p_declare_parameter','parse.py',372), + ('declare_parameter -> BYREF ID COLON ARRAY','declare_parameter',4,'p_declare_parameter','parse.py',373), + ('declare_parameter -> BYVAL ID COLON ID','declare_parameter',4,'p_declare_parameter','parse.py',374), + ('declare_parameter -> BYVAL ID COLON ARRAY','declare_parameter',4,'p_declare_parameter','parse.py',375), + ('declare_parameter -> ID COLON ARRAY OF ID','declare_parameter',5,'p_declare_array_parameter','parse.py',385), + ('declare_parameter -> BYREF ID COLON ARRAY OF ID','declare_parameter',6,'p_declare_array_parameter','parse.py',386), + ('declare_parameter -> BYVAL ID COLON ARRAY OF ID','declare_parameter',6,'p_declare_array_parameter','parse.py',387), + ('parameters -> parameters COMMA expression','parameters',3,'p_parameters','parse.py',397), + ('parameters -> expression','parameters',1,'p_parameters','parse.py',398), + ('statement -> PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_procedure_statement','parse.py',407), + ('statement -> PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_procedure_statement','parse.py',408), + ('statement -> PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',6,'p_procedure_statement','parse.py',409), + ('statement -> PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',6,'p_procedure_statement','parse.py',410), + ('statement -> PUBLIC PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_public_procedure_statement','parse.py',417), + ('statement -> PUBLIC PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_public_procedure_statement','parse.py',418), + ('statement -> PUBLIC PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_public_procedure_statement','parse.py',419), + ('statement -> PUBLIC PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_public_procedure_statement','parse.py',420), + ('statement -> PRIVATE PROCEDURE ID LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_private_procedure_statement','parse.py',427), + ('statement -> PRIVATE PROCEDURE NEW LEFT_PAREN declare_parameters RIGHT_PAREN statements ENDPROCEDURE','statement',8,'p_private_procedure_statement','parse.py',428), + ('statement -> PRIVATE PROCEDURE ID LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_private_procedure_statement','parse.py',429), + ('statement -> PRIVATE PROCEDURE NEW LEFT_PAREN RIGHT_PAREN statements ENDPROCEDURE','statement',7,'p_private_procedure_statement','parse.py',430), + ('statement -> CALL ID LEFT_PAREN parameters RIGHT_PAREN','statement',5,'p_call_procedure_statement','parse.py',437), + ('statement -> CALL ID LEFT_PAREN RIGHT_PAREN','statement',4,'p_call_procedure_statement','parse.py',438), + ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_function_statement','parse.py',445), + ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_function_statement','parse.py',446), + ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',8,'p_function_statement','parse.py',447), + ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',8,'p_function_statement','parse.py',448), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',10,'p_public_function_statement','parse.py',455), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',10,'p_public_function_statement','parse.py',456), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_public_function_statement','parse.py',457), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_public_function_statement','parse.py',458), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',10,'p_private_function_statement','parse.py',465), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',10,'p_private_function_statement','parse.py',466), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ID statements ENDFUNCTION','statement',9,'p_private_function_statement','parse.py',467), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY statements ENDFUNCTION','statement',9,'p_private_function_statement','parse.py',468), + ('statement -> FUNCTION ID LEFT_PAREN declare_parameters RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_arr_function_statement','parse.py',475), + ('statement -> FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',10,'p_arr_function_statement','parse.py',476), + ('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',483), + ('statement -> PUBLIC FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_public_arr_function_statement','parse.py',484), + ('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',491), + ('statement -> PRIVATE FUNCTION ID LEFT_PAREN RIGHT_PAREN RETURNS ARRAY OF ID statements ENDFUNCTION','statement',11,'p_private_arr_function_statement','parse.py',492), + ('expression -> ID LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',499), + ('expression -> MOD LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',500), + ('expression -> DIV LEFT_PAREN parameters RIGHT_PAREN','expression',4,'p_call_function_expression','parse.py',501), + ('expression -> ID LEFT_PAREN RIGHT_PAREN','expression',3,'p_call_function_expression','parse.py',502), + ('statement -> RETURN expression','statement',2,'p_return_statement','parse.py',515), + ('statement -> OPENFILE expression FOR READ','statement',4,'p_openfile_statement','parse.py',519), + ('statement -> OPENFILE expression FOR WRITE','statement',4,'p_openfile_statement','parse.py',520), + ('statement -> OPENFILE expression FOR APPEND','statement',4,'p_openfile_statement','parse.py',521), + ('statement -> OPENFILE expression FOR RANDOM','statement',4,'p_openfile_statement','parse.py',522), + ('statement -> READFILE expression COMMA ID LEFT_SQUARE indexes RIGHT_SQUARE','statement',7,'p_readfile_array_statement','parse.py',526), + ('statement -> READFILE expression COMMA ID','statement',4,'p_readfile_statement','parse.py',530), + ('statement -> WRITEFILE expression COMMA expression','statement',4,'p_writefile_statement','parse.py',534), + ('statement -> CLOSEFILE expression','statement',2,'p_closefile_statement','parse.py',538), + ('statement -> SEEK expression COMMA expression','statement',4,'p_seek_statement','parse.py',542), + ('statement -> TYPE ID statements ENDTYPE','statement',4,'p_composite_type_declare_statement','parse.py',546), + ('expression -> expression DOT expression','expression',3,'p_composite_type_expression','parse.py',550), + ('statement -> TYPE ID EQUAL LEFT_PAREN enumerate_items RIGHT_PAREN','statement',6,'p_enumerate_type_statement','parse.py',558), + ('enumerate_items -> enumerate_items COMMA ID','enumerate_items',3,'p_enumerate_items','parse.py',562), + ('enumerate_items -> ID','enumerate_items',1,'p_enumerate_items','parse.py',563), + ('expression -> POINTER expression','expression',2,'p_pointer_expression','parse.py',572), + ('expression -> expression POINTER','expression',2,'p_solve_pointer_expression','parse.py',576), + ('statement -> TYPE ID EQUAL POINTER ID','statement',5,'p_pointer_type_statement','parse.py',580), + ('statement -> PASS','statement',1,'p_pass_statement','parse.py',588), + ('statement -> IMPORT expression','statement',2,'p_import_statement','parse.py',592), + ('statement -> CLASS ID statements ENDCLASS','statement',4,'p_class_statement','parse.py',596), + ('statement -> CLASS ID INHERITS ID statements ENDCLASS','statement',6,'p_class_inherit_statement','parse.py',600), + ('expression -> NEW ID','expression',2,'p_class_expression','parse.py',604), + ('expression -> NEW ID LEFT_PAREN parameters RIGHT_PAREN','expression',5,'p_class_expression','parse.py',605), + ('statement -> TYPE ID EQUAL SET OF ID','statement',6,'p_set_statement','parse.py',612), ] diff --git a/pkg-script/postupgrade.sh b/pkg-script/postupgrade.sh index 0d8aa3d..49cff66 100644 --- a/pkg-script/postupgrade.sh +++ b/pkg-script/postupgrade.sh @@ -14,6 +14,7 @@ git config --global --add safe.directory /usr/local/sbin/CAIE_Code || exit 1 chown -R $loggedInUser $current_dir || exit 1 # 链接到 bin 目录 +mkdir -p /usr/local/bin ln -sf ${current_dir}/bin/cpc /usr/local/bin/cpc || exit 1 # 链接到 man 目录,如果失败则返回退出代码1 diff --git a/scripts/string.cpc b/scripts/string.cpc index b3e4af4..a8a7020 100644 --- a/scripts/string.cpc +++ b/scripts/string.cpc @@ -25,28 +25,6 @@ FUNCTION Split(s : STRING, sep : STRING) RETURNS ARRAY RETURN returnArr ENDFUNCTION -FUNCTION Lcase(s : STRING) RETURNS STRING - DECLARE result : STRING - result <- "" - - FOR i <- 1 TO LENGTH(s) - result <- result & LCASE(CHAR(MID(s, i, 1))) - NEXT i - - RETURN result -ENDFUNCTION - -FUNCTION Ucase(s : STRING) RETURNS STRING - DECLARE result : STRING - result <- "" - - FOR i <- 1 TO LENGTH(s) - result <- result & UCASE(CHAR(MID(s, i, 1))) - NEXT i - - RETURN result -ENDFUNCTION - FUNCTION TrimStart(s : STRING) RETURNS STRING DECLARE len : INTEGER len <- LENGTH(s) diff --git a/src/AST/calc.py b/src/AST/calc.py index 50ae57c..7a38214 100644 --- a/src/AST/calc.py +++ b/src/AST/calc.py @@ -59,6 +59,9 @@ def get_tree(self, level=0): def exe(self): n1 = self.left.exe() n2 = self.right.exe() + if any(i[1] == 'STRING' for i in [n1, n2]): + add_error_message(f'Cannot multiply `{n1[1]}` with `{n2[1]}`', self) + return try: v = n1[0] * n2[0] if int(v) == v: @@ -108,12 +111,14 @@ def get_tree(self, level=0): def exe(self): s1 = self.left.exe() s2 = self.right.exe() - try: - return (s1[0] + s2[0], 'STRING') - except: + if all(i[1] in ('STRING', 'CHAR') for i in [s1, s2]): + try: + return (s1[0] + s2[0], 'STRING') + except: + add_error_message(f'Cannot connect `{s1[1]}` with `{s2[1]}`', self) + else: add_error_message(f'Cannot connect `{s1[1]}` with `{s2[1]}`', self) - class Op_mod(AST_Node): def __init__(self, left, right, *args, **kwargs): super().__init__(*args, **kwargs) diff --git a/src/AST/var.py b/src/AST/var.py index 398fe8e..6f560bb 100644 --- a/src/AST/var.py +++ b/src/AST/var.py @@ -95,3 +95,37 @@ def exe(self): add_error_message(f'Cannot assign `{assign_item}` to `{target_item}`', self) else: add_error_message(f'Target item does not exist', self) + +class Ids(AST_Node): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'IDS' + self.ids = [] + + def get_tree(self, level=0): + r = LEVEL_STR * level + self.type + for i in self.ids: + r += '\n' + LEVEL_STR * (level + 1) + i + return r + + def add_id(self, id): + self.ids.append(id) + + def exe(self): + return self.ids + +class MultiVariables(AST_Node): + def __init__(self, ids, var_type, private=False, *args, **kwargs): + super().__init__(*args, **kwargs) + self.type = 'MULTI_VARIABLES' + self.ids = ids + self.var_type = var_type + self.private = private + + def get_tree(self, level=0): + return LEVEL_STR * level + self.type + "\n" + self.ids.get_tree(level+1) + "\n" + LEVEL_STR * (level+1) + str(self.var_type) + + def exe(self): + id_list = self.ids.exe() + for id in id_list: + Variable(id, self.var_type, self.private).exe() diff --git a/src/config.py b/src/config.py index fd0c460..b715484 100644 --- a/src/config.py +++ b/src/config.py @@ -25,6 +25,7 @@ def __init__(self, config_file_name=".cpc_config.json"): self.config = { 'remote': _Config('remote', 'https://github.com/iewnfod/CAIE_Code.git', remote_update), 'dev': _Config('dev', False, dev_mod), + 'integrity-protection': _Config('integrity-protection', True, integrity_protection), 'branch': _Config('branch', 'stable', branch_update), 'rl': _Config('recursion-limit', 1000, recursive_limit), 'dev.simulate-update': _Config('dev.simulate-update', False, simulate_update), diff --git a/src/config_funcs.py b/src/config_funcs.py index c5797c4..b18ef5b 100644 --- a/src/config_funcs.py +++ b/src/config_funcs.py @@ -43,6 +43,8 @@ def update(self, obj, val): dev_mod = DictConfig({'true': True, 'false': False}) +integrity_protection = DictConfig({'true': True, 'false': False}) + branch_update = SetConfig({'stable', 'nightly', 'dev'}) simulate_update = DictConfig({'true': True, 'false': False}) diff --git a/src/options.py b/src/options.py index f99956d..d7573cd 100644 --- a/src/options.py +++ b/src/options.py @@ -1,5 +1,5 @@ import platform -from .update import VERSION, update, get_commit_hash_msg, get_current_branch +from .update import VERSION, update, get_commit_hash_msg, get_current_branch, show_notification import os PLATFORM = f'[ {platform.python_implementation()} {platform.python_version()} ] on {platform.system()}' @@ -22,10 +22,11 @@ def get_value(value): return options_dict[value] def standard_output(): + import datetime print(f'CAIE Pseudocode Interpreter v{VERSION} ({get_current_branch()}/{get_commit_hash_msg()[0]})') print(f'Using {PLATFORM}') print('Repository at \033[4mhttps://github.com/iewnfod/CAIE_Code/\33[0m') - print('Copyright (c) 2023 Iewnfod. ') + print(f'Copyright © {datetime.datetime.now().year} Iewnfod. ') print('All Rights Reserved. ') def open_parse_info(): @@ -87,6 +88,9 @@ def show_keywords(): def remove_error(): options_dict['show_error'] = False +def notification(): + show_notification(get_current_branch()) + def update_version(): update() @@ -178,6 +182,7 @@ def __lt__(self, other): Opt('-t', '--time', get_time, 'To show the time for the script to run', False), Opt('-k', '--keywords', show_keywords, 'To show all the keywords', True), Opt('-ne', '--no-error', remove_error, 'To remove all error messages', False), + Opt('-n', '--notification', notification, 'To show notification published by developer (only if this is not expired)', True), Opt('-u', '--update', update_version, 'To check or update the version (only if this is installed with git)', True), Opt('-c', '--config', change_config, 'To set configs of this interpreter', True, 2), Opt('-m', '--migrate', migrate_files, 'To migrate .p files to .cpc in a specified directory', True, 1), diff --git a/src/parse.py b/src/parse.py index 333b6e3..3b7af92 100644 --- a/src/parse.py +++ b/src/parse.py @@ -49,10 +49,29 @@ def p_declare_statement(p): | PUBLIC ID COLON ID""" p[0] = AST.Variable(p[2], p[4], p=p) +def p_multi_declare_statement(p): + """statement : DECLARE ids COLON ID + | PUBLIC ids COLON ID""" + p[0] = AST.MultiVariables(p[2], p[4], p=p) + +def p_multi_id_expression(p): + """ids : ids COMMA ID + | ID""" + if len(p) == 2: + p[0] = AST.Ids(p=p) + p[0].add_id(p[1]) + else: + p[1].add_id(p[3]) + p[0] = p[1] + def p_private_declare_statement(p): """statement : PRIVATE ID COLON ID""" p[0] = AST.Variable(p[2], p[4], private=True, p=p) +def p_private_multi_declare_statement(p): + """statement : PRIVATE ids COLON ID""" + p[0] = AST.MultiVariables(p[2], p[4], private=True, p=p) + def p_const_declare_statement(p): """statement : CONSTANT ID EQUAL expression | CONSTANT ID ASSIGN expression""" diff --git a/src/requirements.py b/src/requirements.py index 963e2a5..3d2c2ee 100644 --- a/src/requirements.py +++ b/src/requirements.py @@ -19,6 +19,6 @@ def test_requirements(): except: print(f'Missing Important Dependence `{package_name}`\nTrying to Install for You...') if os.environ.get('CODESPACES'): - os.system(f'{sys.executable} -m pip install {package_name}') + os.system(f'"{sys.executable}" -m pip install {package_name}') else: - os.system(f'{sys.executable} -m pip install {package_name} -i {tuna}') + os.system(f'"{sys.executable}" -m pip install {package_name} -i {tuna}') diff --git a/src/update.py b/src/update.py index 7144b24..1997e21 100644 --- a/src/update.py +++ b/src/update.py @@ -3,7 +3,9 @@ import os import git import requests +import json from time import time +from datetime import datetime VERSION = '' @@ -46,6 +48,7 @@ def check_update(repo: git.Repo, remote: git.Remote): elif local_commit_time > remote_commit_time: print(f"Good! Good! You are faster than \033[1m{get_current_branch()}\033[0m branch!") print("At", *get_commit_hash_msg()) + show_notification(get_current_branch()) global super_fast super_fast = True return False @@ -61,8 +64,10 @@ def _update(remote, repo): repo.git.checkout(branch) remote.pull() print('\033[1mUpdate Successful\033[0m') + show_notification(get_current_branch()) else: print('\033[1mSimulate Update Successful\033[0m') + show_notification(get_current_branch()) except: print('\033[31;1mFailed to Update\033[0m') @@ -87,6 +92,50 @@ def get_commit_hash_msg(): local_commit_message = repo.head.reference.commit.message.strip() return latest_commit_hash, latest_commit_message, local_commit_hash, local_commit_message +def show_notification(_branch): + f = os.path.join(HOME_PATH, 'notification', 'notification.json') + with open(f, 'r') as file: + notification_data = json.load(file) + if _branch in notification_data['branch']: + expiry_date_str = notification_data['expiry_date'] + current_time = datetime.now() + expiry_date = datetime.strptime(expiry_date_str, '%Y-%m-%d') + if current_time < expiry_date: + if notification_data['type'] == 'deprecate': + print(f"\033[1m❗DEPRECATED NOTIFICATION❗\33[1m") + deprecate_keyword = ', '.join(notification_data['deprecation']['keyword']) + deprecation_date_str = notification_data['deprecation']['deprecation_date'] + deprecation_date = datetime.strptime(deprecation_date_str, '%Y-%m-%d') + if current_time > deprecation_date: + print(f"👉{deprecate_keyword}👈 has become deprecated since {notification_data['deprecation']['deprecation_date']}") + else: + print(f"👉{deprecate_keyword}👈 will be deprecated at {notification_data['deprecation']['deprecation_date']}") + elif notification_data['type'] == 'update': + print(f"\033[1m🎉UPDATE NOTIFICATION🎉\33[1m") + print(f"👉{notification_data['content']}") + elif notification_data['type'] == 'add': + print(f"\033[1m🎉NEW FEATURE NOTIFICATION🎉\33[1m") + print(f"👉{notification_data['content']}") + else: + print("🙁No developer notification available.") + else: + print("🙁No developer notification available.") + +def integrity_protection(): + repo = git.Repo(HOME_PATH) + if not os.environ.get('CODESPACES'): + current_branch = get_current_branch() + local_commit = repo.head.commit + remote_branch = repo.remote().refs[current_branch] + remote_commit = remote_branch.commit + diff = local_commit.diff(remote_commit) + + if diff or repo.is_dirty(): + repo.git.reset('--hard', remote_commit) + print("❗INTEGRITY WARNING❗") + print("Changes have been discarded") + print("---------------------------------") + def update(): from .global_var import config if os.getenv('CODESPACES'): @@ -121,3 +170,4 @@ def update(): else: if not super_fast: print(f'Good! You are using the latest \033[1m{get_current_branch()}\033[0m version!\nAt {local_commit_hash}: {local_commit_message}') + show_notification(get_current_branch())