Show
Ignore:
Timestamp:
04/10/10 21:09:45 (2 years ago)
Author:
Philip Herron <redbrain@…>
Parents:
0bac65d3af927bb24143c4dd6397346cb1e88974
Children:
de90227417a23156a9297ac163b126800adf0571
git-committer:
Philip Herron <redbrain@omicron.(none)> / 2010-04-10T21:09:45Z+0100
Message:

cleanup adding object creation code

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • docs/grammar.bnf

    r5bca2db r9aa07a8  
    1 Terminals unused in grammar 
    2  
    3    CLASS 
    4  
    5  
    61Grammar 
    72 
     
    105    1 declarations: /* empty */ 
    116    2             | declarations statement 
    12     3             | declarations function_definition 
    13     4             | error 
    14  
    15     5 member_accessor: IDENTIFIER '.' IDENTIFIER 
    16     6                | IDENTIFIER '.' IDENTIFIER '(' ')' 
    17     7                | IDENTIFIER '.' IDENTIFIER '(' arguments ')' 
    18  
    19     8 symbol_accessor: IDENTIFIER 
    20     9                | IDENTIFIER '[' expression ']' 
    21    10                | member_accessor 
    22  
    23    11 function_definition: DEFUN IDENTIFIER '{' procedure '}' 
    24    12                    | DEFUN IDENTIFIER '(' ')' '{' procedure '}' 
    25    13                    | DEFUN IDENTIFIER '(' parameters ')' '{' procedure '}' 
    26  
    27    14 expression: express 
    28  
    29    15 express: symbol_accessor '=' express 
    30    16        | express '+' express 
    31    17        | express '-' express 
    32    18        | express '/' express 
    33    19        | express '*' express 
    34    20        | express '^' express 
    35    21        | express LESS express 
    36    22        | express GREATER express 
    37    23        | express LESS_EQUAL express 
    38    24        | express GREATER_EQUAL express 
    39    25        | express EQUAL express 
    40    26        | express NOT_EQUAL express 
    41    27        | express OR express 
    42    28        | express AND express 
    43    29        | '-' express 
    44    30        | symbol_accessor PLUSPLUS 
    45    31        | symbol_accessor MINMIN 
    46    32        | symbol_accessor PLUS_EQUAL express 
    47    33        | symbol_accessor MINUS_EQUAL express 
    48    34        | symbol_accessor MULTIPLY_EQUAL express 
    49    35        | symbol_accessor DIVIDE_EQUAL express 
    50    36        | '(' express ')' 
    51    37        | primitive 
    52  
    53    38 procedure: pblock 
    54  
    55    39 pblock: pblock statement 
    56    40       | statement 
    57  
    58    41 loop_while: WHILE '(' expression ')' '{' procedure '}' 
    59  
    60    42 loop_for: FOR '(' expression ';' expression ';' expression ')' '{' procedure '}' 
    61  
    62    43 control_structure: loop_while 
    63    44                  | loop_for 
    64    45                  | conditionals 
    65  
    66    46 struct_if: IF '(' expression ')' '{' procedure '}' 
    67  
    68    47 struct_elif: ELIF '(' expression ')' '{' procedure '}' 
    69  
    70    48 struct_else: ELSE '{' procedure '}' 
    71  
    72    49 struct_elif_block: struct_elif_block struct_elif 
    73    50                  | struct_elif 
    74  
    75    51 elif_block: /* empty */ 
    76    52           | struct_elif_block 
    77  
    78    53 else_block: /* empty */ 
    79    54           | struct_else 
    80  
    81    55 conditionals: struct_if elif_block else_block 
    82  
    83    56 statement: expression ';' 
    84    57          | print_keyword ';' 
    85    58          | break_keyword ';' 
    86    59          | return_keyword ';' 
    87    60          | continue_keyword ';' 
    88    61          | delete_keyword ';' 
    89    62          | control_structure 
    90  
    91    63 delete_keyword: DELETE IDENTIFIER 
    92  
    93    64 continue_keyword: CONTINUE 
    94  
    95    65 break_keyword: BREAK 
    96  
    97    66 return_keyword: RETURN expression 
    98  
    99    67 arbitrary_call: IDENTIFIER '(' ')' 
    100    68               | IDENTIFIER '(' arguments ')' 
    101  
    102    69 print_keyword: PRINT arguments 
    103  
    104    70 list_symbol: '[' arguments ']' 
    105  
    106    71 parameters_expression: parameters_expression ',' IDENTIFIER 
    107    72                      | IDENTIFIER 
    108  
    109    73 parameters: parameters_expression 
    110  
    111    74 arguments: argument_list 
    112  
    113    75 argument_list: argument_list ',' expression 
    114    76              | expression 
    115  
    116    77 primitive: symbol_accessor 
    117    78          | arbitrary_call 
    118    79          | NIL 
    119    80          | INTEGER 
    120    81          | DOUBLE 
    121    82          | TRUE 
    122    83          | FALSE 
    123    84          | CHAR 
    124    85          | STRING 
    125    86          | list_symbol 
     7    3             | error 
     8 
     9    4 class_definition: "object" IDENTIFIER '{' procedure '}' 
     10 
     11    5 object_creation: "new" arbitrary_call 
     12 
     13    6 dot_accessor: dot_accessor '.' accessor 
     14    7             | accessor 
     15 
     16    8 member_accessor: dot_accessor 
     17 
     18    9 accessor: symbol_accessor 
     19   10         | arbitrary_call 
     20   11         | object_creation 
     21 
     22   12 symbol_accessor: IDENTIFIER 
     23   13                | IDENTIFIER '[' expression ']' 
     24 
     25   14 function_definition: "defun" IDENTIFIER '{' procedure '}' 
     26   15                    | "defun" IDENTIFIER '(' ')' '{' procedure '}' 
     27   16                    | "defun" IDENTIFIER '(' parameters ')' '{' procedure '}' 
     28 
     29   17 expression: express 
     30 
     31   18 express: symbol_accessor '=' express 
     32   19        | express '+' express 
     33   20        | express '-' express 
     34   21        | express '/' express 
     35   22        | express '*' express 
     36   23        | express '^' express 
     37   24        | express "<" express 
     38   25        | express ">" express 
     39   26        | express "<=" express 
     40   27        | express ">=" express 
     41   28        | express "==" express 
     42   29        | express "!=" express 
     43   30        | express "||" express 
     44   31        | express "&&" express 
     45   32        | '-' express 
     46   33        | symbol_accessor "++" 
     47   34        | symbol_accessor "--" 
     48   35        | symbol_accessor "+=" express 
     49   36        | symbol_accessor "-=" express 
     50   37        | symbol_accessor "*=" express 
     51   38        | symbol_accessor "/=" express 
     52   39        | '(' express ')' 
     53   40        | primitive 
     54 
     55   41 procedure: pblock 
     56 
     57   42 pblock: pblock statement 
     58   43       | statement 
     59 
     60   44 loop_while: "while" '(' expression ')' '{' procedure '}' 
     61 
     62   45 loop_for: "for" '(' expression ';' expression ';' expression ')' '{' procedure '}' 
     63 
     64   46 control_structure: loop_while 
     65   47                  | loop_for 
     66   48                  | conditionals 
     67   49                  | function_definition 
     68   50                  | class_definition 
     69 
     70   51 struct_if: "if" '(' expression ')' '{' procedure '}' 
     71 
     72   52 struct_elif: "elif" '(' expression ')' '{' procedure '}' 
     73 
     74   53 struct_else: "else" '{' procedure '}' 
     75 
     76   54 struct_elif_block: struct_elif_block struct_elif 
     77   55                  | struct_elif 
     78 
     79   56 elif_block: /* empty */ 
     80   57           | struct_elif_block 
     81 
     82   58 else_block: /* empty */ 
     83   59           | struct_else 
     84 
     85   60 conditionals: struct_if elif_block else_block 
     86 
     87   61 statement: expression ';' 
     88   62          | print_keyword ';' 
     89   63          | break_keyword ';' 
     90   64          | return_keyword ';' 
     91   65          | continue_keyword ';' 
     92   66          | delete_keyword ';' 
     93   67          | control_structure 
     94 
     95   68 delete_keyword: "delete" IDENTIFIER 
     96 
     97   69 continue_keyword: "conintue" 
     98 
     99   70 break_keyword: "break" 
     100 
     101   71 return_keyword: "return" expression 
     102 
     103   72 arbitrary_call: IDENTIFIER '(' ')' 
     104   73               | IDENTIFIER '(' arguments ')' 
     105 
     106   74 print_keyword: "print" arguments 
     107 
     108   75 list_symbol: '[' arguments ']' 
     109 
     110   76 parameters_expression: parameters_expression ',' IDENTIFIER 
     111   77                      | IDENTIFIER 
     112 
     113   78 parameters: parameters_expression 
     114 
     115   79 arguments: argument_list 
     116 
     117   80 argument_list: argument_list ',' expression 
     118   81              | expression 
     119 
     120   82 primitive: member_accessor 
     121   83          | "nil" 
     122   84          | INTEGER 
     123   85          | DOUBLE 
     124   86          | "true" 
     125   87          | "false" 
     126   88          | CHAR 
     127   89          | STRING 
     128   90          | list_symbol 
    126129 
    127130 
     
    129132 
    130133$end (0) 0 
    131 '(' (40) 6 7 12 13 36 41 42 46 47 67 68 
    132 ')' (41) 6 7 12 13 36 41 42 46 47 67 68 
    133 '*' (42) 19 
    134 '+' (43) 16 
    135 ',' (44) 71 75 
    136 '-' (45) 17 29 
    137 '.' (46) 5 6 7 
    138 '/' (47) 18 
    139 ';' (59) 42 56 57 58 59 60 61 
    140 '=' (61) 15 
    141 '[' (91) 9 70 
    142 ']' (93) 9 70 
    143 '^' (94) 20 
    144 '{' (123) 11 12 13 41 42 46 47 48 
    145 '}' (125) 11 12 13 41 42 46 47 48 
    146 error (256) 4 
    147 CLASS (258) 
    148 DEFUN (259) 11 12 13 
    149 BREAK (260) 65 
    150 CONTINUE (261) 64 
    151 RETURN (262) 66 
    152 DELETE (263) 63 
    153 WHILE (264) 41 
    154 FOR (265) 42 
    155 IF (266) 46 
    156 ELIF (267) 47 
    157 ELSE (268) 48 
    158 PRINT (269) 69 
    159 TRUE (270) 82 
    160 FALSE (271) 83 
    161 NIL (272) 79 
    162 OR (273) 27 
    163 AND (274) 28 
    164 EQUAL (275) 25 
    165 PLUS_EQUAL (276) 32 
    166 MULTIPLY_EQUAL (277) 34 
    167 MINUS_EQUAL (278) 33 
    168 DIVIDE_EQUAL (279) 35 
    169 NOT_EQUAL (280) 26 
    170 LESS (281) 21 
    171 LESS_EQUAL (282) 23 
    172 GREATER (283) 22 
    173 GREATER_EQUAL (284) 24 
    174 PLUSPLUS (285) 30 
    175 MINMIN (286) 31 
    176 CHAR (287) 84 
    177 STRING (288) 85 
    178 INTEGER (289) 80 
    179 DOUBLE (290) 81 
    180 IDENTIFIER (291) 5 6 7 8 9 11 12 13 63 67 68 71 72 
    181 UMINUS (292) 
     134'(' (40) 15 16 39 44 45 51 52 72 73 
     135')' (41) 15 16 39 44 45 51 52 72 73 
     136'*' (42) 22 
     137'+' (43) 19 
     138',' (44) 76 80 
     139'-' (45) 20 32 
     140'.' (46) 6 
     141'/' (47) 21 
     142';' (59) 45 61 62 63 64 65 66 
     143'=' (61) 18 
     144'[' (91) 13 75 
     145']' (93) 13 75 
     146'^' (94) 23 
     147'{' (123) 4 14 15 16 44 45 51 52 53 
     148'}' (125) 4 14 15 16 44 45 51 52 53 
     149error (256) 3 
     150"object" (258) 4 
     151"defun" (259) 14 15 16 
     152"break" (260) 70 
     153"conintue" (261) 69 
     154"return" (262) 71 
     155"delete" (263) 68 
     156"while" (264) 44 
     157"for" (265) 45 
     158"new" (266) 5 
     159"if" (267) 51 
     160"elif" (268) 52 
     161"else" (269) 53 
     162"print" (270) 74 
     163"true" (271) 86 
     164"false" (272) 87 
     165"nil" (273) 83 
     166"||" (274) 30 
     167"&&" (275) 31 
     168"==" (276) 28 
     169"+=" (277) 35 
     170"*=" (278) 37 
     171"-=" (279) 36 
     172"/=" (280) 38 
     173"!=" (281) 29 
     174"<" (282) 24 
     175"<=" (283) 26 
     176">" (284) 25 
     177">=" (285) 27 
     178"++" (286) 33 
     179"--" (287) 34 
     180CHAR (288) 88 
     181STRING (289) 89 
     182INTEGER (290) 84 
     183DOUBLE (291) 85 
     184IDENTIFIER (292) 4 12 13 14 15 16 68 72 73 76 77 
     185UMINUS (293) 
    182186 
    183187 
    184188Nonterminals, with rules where they appear 
    185189 
    186 $accept (53) 
     190$accept (54) 
    187191    on left: 0 
    188 declarations (54) 
    189     on left: 1 2 3 4, on right: 0 2 3 
    190 member_accessor (55) 
    191     on left: 5 6 7, on right: 10 
    192 symbol_accessor (56) 
    193     on left: 8 9 10, on right: 15 30 31 32 33 34 35 77 
    194 function_definition (57) 
    195     on left: 11 12 13, on right: 3 
    196 expression (58) 
    197     on left: 14, on right: 9 41 42 46 47 56 66 75 76 
    198 express (59) 
    199     on left: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 
    200     33 34 35 36 37, on right: 14 15 16 17 18 19 20 21 22 23 24 25 26 
    201     27 28 29 32 33 34 35 36 
    202 procedure (60) 
    203     on left: 38, on right: 11 12 13 41 42 46 47 48 
    204 pblock (61) 
    205     on left: 39 40, on right: 38 39 
    206 loop_while (62) 
    207     on left: 41, on right: 43 
    208 loop_for (63) 
    209     on left: 42, on right: 44 
    210 control_structure (64) 
    211     on left: 43 44 45, on right: 62 
    212 struct_if (65) 
    213     on left: 46, on right: 55 
    214 struct_elif (66) 
    215     on left: 47, on right: 49 50 
    216 struct_else (67) 
    217     on left: 48, on right: 54 
    218 struct_elif_block (68) 
    219     on left: 49 50, on right: 49 52 
    220 elif_block (69) 
    221     on left: 51 52, on right: 55 
    222 else_block (70) 
    223     on left: 53 54, on right: 55 
    224 conditionals (71) 
    225     on left: 55, on right: 45 
    226 statement (72) 
    227     on left: 56 57 58 59 60 61 62, on right: 2 39 40 
    228 delete_keyword (73) 
    229     on left: 63, on right: 61 
    230 continue_keyword (74) 
    231     on left: 64, on right: 60 
    232 break_keyword (75) 
    233     on left: 65, on right: 58 
    234 return_keyword (76) 
    235     on left: 66, on right: 59 
    236 arbitrary_call (77) 
    237     on left: 67 68, on right: 78 
    238 print_keyword (78) 
    239     on left: 69, on right: 57 
    240 list_symbol (79) 
    241     on left: 70, on right: 86 
    242 parameters_expression (80) 
    243     on left: 71 72, on right: 71 73 
    244 parameters (81) 
    245     on left: 73, on right: 13 
    246 arguments (82) 
    247     on left: 74, on right: 7 68 69 70 
    248 argument_list (83) 
    249     on left: 75 76, on right: 74 75 
    250 primitive (84) 
    251     on left: 77 78 79 80 81 82 83 84 85 86, on right: 37 
     192declarations (55) 
     193    on left: 1 2 3, on right: 0 2 
     194class_definition (56) 
     195    on left: 4, on right: 50 
     196object_creation (57) 
     197    on left: 5, on right: 11 
     198dot_accessor (58) 
     199    on left: 6 7, on right: 6 8 
     200member_accessor (59) 
     201    on left: 8, on right: 82 
     202accessor (60) 
     203    on left: 9 10 11, on right: 6 7 
     204symbol_accessor (61) 
     205    on left: 12 13, on right: 9 18 33 34 35 36 37 38 
     206function_definition (62) 
     207    on left: 14 15 16, on right: 49 
     208expression (63) 
     209    on left: 17, on right: 13 44 45 51 52 61 71 80 81 
     210express (64) 
     211    on left: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 
     212    36 37 38 39 40, on right: 17 18 19 20 21 22 23 24 25 26 27 28 29 
     213    30 31 32 35 36 37 38 39 
     214procedure (65) 
     215    on left: 41, on right: 4 14 15 16 44 45 51 52 53 
     216pblock (66) 
     217    on left: 42 43, on right: 41 42 
     218loop_while (67) 
     219    on left: 44, on right: 46 
     220loop_for (68) 
     221    on left: 45, on right: 47 
     222control_structure (69) 
     223    on left: 46 47 48 49 50, on right: 67 
     224struct_if (70) 
     225    on left: 51, on right: 60 
     226struct_elif (71) 
     227    on left: 52, on right: 54 55 
     228struct_else (72) 
     229    on left: 53, on right: 59 
     230struct_elif_block (73) 
     231    on left: 54 55, on right: 54 57 
     232elif_block (74) 
     233    on left: 56 57, on right: 60 
     234else_block (75) 
     235    on left: 58 59, on right: 60 
     236conditionals (76) 
     237    on left: 60, on right: 48 
     238statement (77) 
     239    on left: 61 62 63 64 65 66 67, on right: 2 42 43 
     240delete_keyword (78) 
     241    on left: 68, on right: 66 
     242continue_keyword (79) 
     243    on left: 69, on right: 65 
     244break_keyword (80) 
     245    on left: 70, on right: 63 
     246return_keyword (81) 
     247    on left: 71, on right: 64 
     248arbitrary_call (82) 
     249    on left: 72 73, on right: 5 10 
     250print_keyword (83) 
     251    on left: 74, on right: 62 
     252list_symbol (84) 
     253    on left: 75, on right: 90 
     254parameters_expression (85) 
     255    on left: 76 77, on right: 76 78 
     256parameters (86) 
     257    on left: 78, on right: 16 
     258arguments (87) 
     259    on left: 79, on right: 73 74 75 
     260argument_list (88) 
     261    on left: 80 81, on right: 79 80 
     262primitive (89) 
     263    on left: 82 83 84 85 86 87 88 89 90, on right: 40 
    252264 
    253265 
     
    259271 
    260272    $end        reduce using rule 1 (declarations) 
    261     DEFUN       reduce using rule 1 (declarations) 
    262     BREAK       reduce using rule 1 (declarations) 
    263     CONTINUE    reduce using rule 1 (declarations) 
    264     RETURN      reduce using rule 1 (declarations) 
    265     DELETE      reduce using rule 1 (declarations) 
    266     WHILE       reduce using rule 1 (declarations) 
    267     FOR         reduce using rule 1 (declarations) 
    268     IF          reduce using rule 1 (declarations) 
    269     PRINT       reduce using rule 1 (declarations) 
    270     TRUE        reduce using rule 1 (declarations) 
    271     FALSE       reduce using rule 1 (declarations) 
    272     NIL         reduce using rule 1 (declarations) 
     273    "object"    reduce using rule 1 (declarations) 
     274    "defun"     reduce using rule 1 (declarations) 
     275    "break"     reduce using rule 1 (declarations) 
     276    "conintue"  reduce using rule 1 (declarations) 
     277    "return"    reduce using rule 1 (declarations) 
     278    "delete"    reduce using rule 1 (declarations) 
     279    "while"     reduce using rule 1 (declarations) 
     280    "for"       reduce using rule 1 (declarations) 
     281    "new"       reduce using rule 1 (declarations) 
     282    "if"        reduce using rule 1 (declarations) 
     283    "print"     reduce using rule 1 (declarations) 
     284    "true"      reduce using rule 1 (declarations) 
     285    "false"     reduce using rule 1 (declarations) 
     286    "nil"       reduce using rule 1 (declarations) 
    273287    CHAR        reduce using rule 1 (declarations) 
    274288    STRING      reduce using rule 1 (declarations) 
     
    277291    IDENTIFIER  reduce using rule 1 (declarations) 
    278292    '-'         reduce using rule 1 (declarations) 
     293    '['         reduce using rule 1 (declarations) 
    279294    '('         reduce using rule 1 (declarations) 
    280     '['         reduce using rule 1 (declarations) 
    281295 
    282296    declarations  go to state 2 
     
    285299state 1 
    286300 
    287     4 declarations: error . 
    288  
    289     $default  reduce using rule 4 (declarations) 
     301    3 declarations: error . 
     302 
     303    $default  reduce using rule 3 (declarations) 
    290304 
    291305 
     
    294308    0 $accept: declarations . $end 
    295309    2 declarations: declarations . statement 
    296     3             | declarations . function_definition 
    297310 
    298311    $end        shift, and go to state 3 
    299     DEFUN       shift, and go to state 4 
    300     BREAK       shift, and go to state 5 
    301     CONTINUE    shift, and go to state 6 
    302     RETURN      shift, and go to state 7 
    303     DELETE      shift, and go to state 8 
    304     WHILE       shift, and go to state 9 
    305     FOR         shift, and go to state 10 
    306     IF          shift, and go to state 11 
    307     PRINT       shift, and go to state 12 
    308     TRUE        shift, and go to state 13 
    309     FALSE       shift, and go to state 14 
    310     NIL         shift, and go to state 15 
    311     CHAR        shift, and go to state 16 
    312     STRING      shift, and go to state 17 
    313     INTEGER     shift, and go to state 18 
    314     DOUBLE      shift, and go to state 19 
    315     IDENTIFIER  shift, and go to state 20 
    316     '-'         shift, and go to state 21 
    317     '('         shift, and go to state 22 
    318     '['         shift, and go to state 23 
    319  
    320     member_accessor      go to state 24 
    321     symbol_accessor      go to state 25 
    322     function_definition  go to state 26 
    323     expression           go to state 27 
    324     express              go to state 28 
    325     loop_while           go to state 29 
    326     loop_for             go to state 30 
    327     control_structure    go to state 31 
    328     struct_if            go to state 32 
    329     conditionals         go to state 33 
    330     statement            go to state 34 
    331     delete_keyword       go to state 35 
    332     continue_keyword     go to state 36 
    333     break_keyword        go to state 37 
    334     return_keyword       go to state 38 
    335     arbitrary_call       go to state 39 
    336     print_keyword        go to state 40 
    337     list_symbol          go to state 41 
    338     primitive            go to state 42 
     312    "object"    shift, and go to state 4 
     313    "defun"     shift, and go to state 5 
     314    "break"     shift, and go to state 6 
     315    "conintue"  shift, and go to state 7 
     316    "return"    shift, and go to state 8 
     317    "delete"    shift, and go to state 9 
     318    "while"     shift, and go to state 10 
     319    "for"       shift, and go to state 11 
     320    "new"       shift, and go to state 12 
     321    "if"        shift, and go to state 13 
     322    "print"     shift, and go to state 14 
     323    "true"      shift, and go to state 15 
     324    "false"     shift, and go to state 16 
     325    "nil"       shift, and go to state 17 
     326    CHAR        shift, and go to state 18 
     327    STRING      shift, and go to state 19 
     328    INTEGER     shift, and go to state 20 
     329    DOUBLE      shift, and go to state 21 
     330    IDENTIFIER  shift, and go to state 22 
     331    '-'         shift, and go to state 23 
     332    '['         shift, and go to state 24 
     333    '('         shift, and go to state 25 
     334 
     335    class_definition     go to state 26 
     336    object_creation      go to state 27 
     337    dot_accessor         go to state 28 
     338    member_accessor      go to state 29 
     339    accessor             go to state 30 
     340    symbol_accessor      go to state 31 
     341    function_definition  go to state 32 
     342    expression           go to state 33 
     343    express              go to state 34 
     344    loop_while           go to state 35 
     345    loop_for             go to state 36 
     346    control_structure    go to state 37 
     347    struct_if            go to state 38 
     348    conditionals         go to state 39 
     349    statement            go to state 40 
     350    delete_keyword       go to state 41 
     351    continue_keyword     go to state 42 
     352    break_keyword        go to state 43 
     353    return_keyword       go to state 44 
     354    arbitrary_call       go to state 45 
     355    print_keyword        go to state 46 
     356    list_symbol          go to state 47 
     357    primitive            go to state 48 
    339358 
    340359 
     
    348367state 4 
    349368 
    350    11 function_definition: DEFUN . IDENTIFIER '{' procedure '}' 
    351    12                    | DEFUN . IDENTIFIER '(' ')' '{' procedure '}' 
    352    13                    | DEFUN . IDENTIFIER '(' parameters ')' '{' procedure '}' 
    353  
    354     IDENTIFIER  shift, and go to state 43 
     369    4 class_definition: "object" . IDENTIFIER '{' procedure '}' 
     370 
     371    IDENTIFIER  shift, and go to state 49 
    355372 
    356373 
    357374state 5 
    358375 
    359    65 break_keyword: BREAK . 
    360  
    361     $default  reduce using rule 65 (break_keyword) 
     376   14 function_definition: "defun" . IDENTIFIER '{' procedure '}' 
     377   15                    | "defun" . IDENTIFIER '(' ')' '{' procedure '}' 
     378   16                    | "defun" . IDENTIFIER '(' parameters ')' '{' procedure '}' 
     379 
     380    IDENTIFIER  shift, and go to state 50 
    362381 
    363382 
    364383state 6 
    365384 
    366    64 continue_keyword: CONTINUE . 
    367  
    368     $default  reduce using rule 64 (continue_keyword) 
     385   70 break_keyword: "break" . 
     386 
     387    $default  reduce using rule 70 (break_keyword) 
    369388 
    370389 
    371390state 7 
    372391 
    373    66 return_keyword: RETURN . expression 
    374  
    375     TRUE        shift, and go to state 13 
    376     FALSE       shift, and go to state 14 
    377     NIL         shift, and go to state 15 
    378     CHAR        shift, and go to state 16 
    379     STRING      shift, and go to state 17 
    380     INTEGER     shift, and go to state 18 
    381     DOUBLE      shift, and go to state 19 
    382     IDENTIFIER  shift, and go to state 20 
    383     '-'         shift, and go to state 21 
    384     '('         shift, and go to state 22 
    385     '['         shift, and go to state 23 
    386  
    387     member_accessor  go to state 24 
    388     symbol_accessor  go to state 25 
    389     expression       go to state 44 
    390     express          go to state 28 
    391     arbitrary_call   go to state 39 
    392     list_symbol      go to state 41 
    393     primitive        go to state 42 
     392   69 continue_keyword: "conintue" . 
     393 
     394    $default  reduce using rule 69 (continue_keyword) 
    394395 
    395396 
    396397state 8 
    397398 
    398    63 delete_keyword: DELETE . IDENTIFIER 
    399  
    400     IDENTIFIER  shift, and go to state 45 
     399   71 return_keyword: "return" . expression 
     400 
     401    "new"       shift, and go to state 12 
     402    "true"      shift, and go to state 15 
     403    "false"     shift, and go to state 16 
     404    "nil"       shift, and go to state 17 
     405    CHAR        shift, and go to state 18 
     406    STRING      shift, and go to state 19 
     407    INTEGER     shift, and go to state 20 
     408    DOUBLE      shift, and go to state 21 
     409    IDENTIFIER  shift, and go to state 22 
     410    '-'         shift, and go to state 23 
     411    '['         shift, and go to state 24 
     412    '('         shift, and go to state 25 
     413 
     414    object_creation  go to state 27 
     415    dot_accessor     go to state 28 
     416    member_accessor  go to state 29 
     417    accessor         go to state 30 
     418    symbol_accessor  go to state 31 
     419    expression       go to state 51 
     420    express          go to state 34 
     421    arbitrary_call   go to state 45 
     422    list_symbol      go to state 47 
     423    primitive        go to state 48 
    401424 
    402425 
    403426state 9 
    404427 
    405    41 loop_while: WHILE . '(' expression ')' '{' procedure '}' 
    406  
    407     '('  shift, and go to state 46 
     428   68 delete_keyword: "delete" . IDENTIFIER 
     429 
     430    IDENTIFIER  shift, and go to state 52 
    408431 
    409432 
    410433state 10 
    411434 
    412    42 loop_for: FOR . '(' expression ';' expression ';' expression ')' '{' procedure '}' 
    413  
    414     '('  shift, and go to state 47 
     435   44 loop_while: "while" . '(' expression ')' '{' procedure '}' 
     436 
     437    '('  shift, and go to state 53 
    415438 
    416439 
    417440state 11 
    418441 
    419    46 struct_if: IF . '(' expression ')' '{' procedure '}' 
    420  
    421     '('  shift, and go to state 48 
     442   45 loop_for: "for" . '(' expression ';' expression ';' expression ')' '{' procedure '}' 
     443 
     444    '('  shift, and go to state 54 
    422445 
    423446 
    424447state 12 
    425448 
    426    69 print_keyword: PRINT . arguments 
    427  
    428     TRUE        shift, and go to state 13 
    429     FALSE       shift, and go to state 14 
    430     NIL         shift, and go to state 15 
    431     CHAR        shift, and go to state 16 
    432     STRING      shift, and go to state 17 
    433     INTEGER     shift, and go to state 18 
    434     DOUBLE      shift, and go to state 19 
    435     IDENTIFIER  shift, and go to state 20 
    436     '-'         shift, and go to state 21 
    437     '('         shift, and go to state 22 
    438     '['         shift, and go to state 23 
    439  
    440     member_accessor  go to state 24 
    441     symbol_accessor  go to state 25 
    442     expression       go to state 49 
    443     express          go to state 28 
    444     arbitrary_call   go to state 39 
    445     list_symbol      go to state 41 
    446     arguments        go to state 50 
    447     argument_list    go to state 51 
    448     primitive        go to state 42 
     449    5 object_creation: "new" . arbitrary_call 
     450 
     451    IDENTIFIER  shift, and go to state 55 
     452 
     453    arbitrary_call  go to state 56 
    449454 
    450455 
    451456state 13 
    452457 
    453    82 primitive: TRUE . 
     458   51 struct_if: "if" . '(' expression ')' '{' procedure '}' 
     459 
     460    '('  shift, and go to state 57 
     461 
     462 
     463state 14 
     464 
     465   74 print_keyword: "print" . arguments 
     466 
     467    "new"       shift, and go to state 12 
     468    "true"      shift, and go to state 15 
     469    "false"     shift, and go to state 16 
     470    "nil"       shift, and go to state 17 
     471    CHAR        shift, and go to state 18 
     472    STRING      shift, and go to state 19 
     473    INTEGER     shift, and go to state 20 
     474    DOUBLE      shift, and go to state 21 
     475    IDENTIFIER  shift, and go to state 22 
     476    '-'         shift, and go to state 23 
     477    '['         shift, and go to state 24 
     478    '('         shift, and go to state 25 
     479 
     480    object_creation  go to state 27 
     481    dot_accessor     go to state 28 
     482    member_accessor  go to state 29 
     483    accessor         go to state 30 
     484    symbol_accessor  go to state 31 
     485    expression       go to state 58 
     486    express          go to state 34 
     487    arbitrary_call   go to state 45 
     488    list_symbol      go to state 47 
     489    arguments        go to state 59 
     490    argument_list    go to state 60 
     491    primitive        go to state 48 
     492 
     493 
     494state 15 
     495 
     496   86 primitive: "true" . 
     497 
     498    $default  reduce using rule 86 (primitive) 
     499 
     500 
     501state 16 
     502 
     503   87 primitive: "false" . 
     504 
     505    $default  reduce using rule 87 (primitive) 
     506 
     507 
     508state 17 
     509 
     510   83 primitive: "nil" . 
     511 
     512    $default  reduce using rule 83 (primitive) 
     513 
     514 
     515state 18 
     516 
     517   88 primitive: CHAR . 
     518 
     519    $default  reduce using rule 88 (primitive) 
     520 
     521 
     522state 19 
     523 
     524   89 primitive: STRING . 
     525 
     526    $default  reduce using rule 89 (primitive) 
     527 
     528 
     529state 20 
     530 
     531   84 primitive: INTEGER . 
     532 
     533    $default  reduce using rule 84 (primitive) 
     534 
     535 
     536state 21 
     537 
     538   85 primitive: DOUBLE . 
     539 
     540    $default  reduce using rule 85 (primitive) 
     541 
     542 
     543state 22 
     544 
     545   12 symbol_accessor: IDENTIFIER . 
     546   13                | IDENTIFIER . '[' expression ']' 
     547   72 arbitrary_call: IDENTIFIER . '(' ')' 
     548   73               | IDENTIFIER . '(' arguments ')' 
     549 
     550    '['  shift, and go to state 61 
     551    '('  shift, and go to state 62 
     552 
     553    $default  reduce using rule 12 (symbol_accessor) 
     554 
     555 
     556state 23 
     557 
     558   32 express: '-' . express 
     559 
     560    "new"       shift, and go to state 12 
     561    "true"      shift, and go to state 15 
     562    "false"     shift, and go to state 16 
     563    "nil"       shift, and go to state 17 
     564    CHAR        shift, and go to state 18 
     565    STRING      shift, and go to state 19 
     566    INTEGER     shift, and go to state 20 
     567    DOUBLE      shift, and go to state 21 
     568    IDENTIFIER  shift, and go to state 22 
     569    '-'         shift, and go to state 23 
     570    '['         shift, and go to state 24 
     571    '('         shift, and go to state 25 
     572 
     573    object_creation  go to state 27 
     574    dot_accessor     go to state 28 
     575    member_accessor  go to state 29 
     576    accessor         go to state 30 
     577    symbol_accessor  go to state 31 
     578    express          go to state 63 
     579    arbitrary_call   go to state 45 
     580    list_symbol      go to state 47 
     581    primitive        go to state 48 
     582 
     583 
     584state 24 
     585 
     586   75 list_symbol: '[' . arguments ']' 
     587 
     588    "new"       shift, and go to state 12 
     589    "true"      shift, and go to state 15 
     590    "false"     shift, and go to state 16 
     591    "nil"       shift, and go to state 17 
     592    CHAR        shift, and go to state 18 
     593    STRING      shift, and go to state 19 
     594    INTEGER     shift, and go to state 20 
     595    DOUBLE      shift, and go to state 21 
     596    IDENTIFIER  shift, and go to state 22 
     597    '-'         shift, and go to state 23 
     598    '['         shift, and go to state 24 
     599    '('         shift, and go to state 25 
     600 
     601    object_creation  go to state 27 
     602    dot_accessor     go to state 28 
     603    member_accessor  go to state 29 
     604    accessor         go to state 30 
     605    symbol_accessor  go to state 31 
     606    expression       go to state 58 
     607    express          go to state 34 
     608    arbitrary_call   go to state 45 
     609    list_symbol      go to state 47 
     610    arguments        go to state 64 
     611    argument_list    go to state 60 
     612    primitive        go to state 48 
     613 
     614 
     615state 25 
     616 
     617   39 express: '(' . express ')' 
     618 
     619    "new"       shift, and go to state 12 
     620    "true"      shift, and go to state 15 
     621    "false"     shift, and go to state 16 
     622    "nil"       shift, and go to state 17 
     623    CHAR        shift, and go to state 18 
     624    STRING      shift, and go to state 19 
     625    INTEGER     shift, and go to state 20 
     626    DOUBLE      shift, and go to state 21 
     627    IDENTIFIER  shift, and go to state 22 
     628    '-'         shift, and go to state 23 
     629    '['         shift, and go to state 24 
     630    '('         shift, and go to state 25 
     631 
     632    object_creation  go to state 27 
     633    dot_accessor     go to state 28 
     634    member_accessor  go to state 29 
     635    accessor         go to state 30 
     636    symbol_accessor  go to state 31 
     637    express          go to state 65 
     638    arbitrary_call   go to state 45 
     639    list_symbol      go to state 47 
     640    primitive        go to state 48 
     641 
     642 
     643state 26 
     644 
     645   50 control_structure: class_definition . 
     646 
     647    $default  reduce using rule 50 (control_structure) 
     648 
     649 
     650state 27 
     651 
     652   11 accessor: object_creation . 
     653 
     654    $default  reduce using rule 11 (accessor) 
     655 
     656 
     657state 28 
     658 
     659    6 dot_accessor: dot_accessor . '.' accessor 
     660    8 member_accessor: dot_accessor . 
     661 
     662    '.'  shift, and go to state 66 
     663 
     664    $default  reduce using rule 8 (member_accessor) 
     665 
     666 
     667state 29 
     668 
     669   82 primitive: member_accessor . 
    454670 
    455671    $default  reduce using rule 82 (primitive) 
    456672 
    457673 
    458 state 14 
    459  
    460    83 primitive: FALSE . 
    461  
    462     $default  reduce using rule 83 (primitive) 
    463  
    464  
    465 state 15 
    466  
    467    79 primitive: NIL . 
    468  
    469     $default  reduce using rule 79 (primitive) 
    470  
    471  
    472 state 16 
    473  
    474    84 primitive: CHAR . 
    475  
    476     $default  reduce using rule 84 (primitive) 
    477  
    478  
    479 state 17 
    480  
    481    85 primitive: STRING . 
    482  
    483     $default  reduce using rule 85 (primitive) 
    484  
    485  
    486 state 18 
    487  
    488    80 primitive: INTEGER . 
    489  
    490     $default  reduce using rule 80 (primitive) 
    491  
    492  
    493 state 19 
    494  
    495    81 primitive: DOUBLE . 
    496  
    497     $default  reduce using rule 81 (primitive) 
    498  
    499  
    500 state 20 
    501  
    502     5 member_accessor: IDENTIFIER . '.' IDENTIFIER 
    503     6                | IDENTIFIER . '.' IDENTIFIER '(' ')' 
    504     7                | IDENTIFIER . '.' IDENTIFIER '(' arguments ')' 
    505     8 symbol_accessor: IDENTIFIER . 
    506     9                | IDENTIFIER . '[' expression ']' 
    507    67 arbitrary_call: IDENTIFIER . '(' ')' 
    508    68               | IDENTIFIER . '(' arguments ')' 
    509  
    510     '.'  shift, and go to state 52 
    511     '('  shift, and go to state 53 
    512     '['  shift, and go to state 54 
    513  
    514     $default  reduce using rule 8 (symbol_accessor) 
    515  
    516  
    517 state 21 
    518  
    519    29 express: '-' . express 
    520  
    521     TRUE        shift, and go to state 13 
    522     FALSE       shift, and go to state 14 
    523     NIL         shift, and go to state 15 
    524     CHAR        shift, and go to state 16 
    525     STRING      shift, and go to state 17 
    526     INTEGER     shift, and go to state 18 
    527     DOUBLE      shift, and go to state 19 
    528     IDENTIFIER  shift, and go to state 20 
    529     '-'         shift, and go to state 21 
    530     '('         shift, and go to state 22 
    531     '['         shift, and go to state 23 
    532  
    533     member_accessor  go to state 24 
    534     symbol_accessor  go to state 25 
    535     express          go to state 55 
    536     arbitrary_call   go to state 39 
    537     list_symbol      go to state 41 
    538     primitive        go to state 42 
    539  
    540  
    541 state 22 
    542  
    543    36 express: '(' . express ')' 
    544  
    545     TRUE        shift, and go to state 13 
    546     FALSE       shift, and go to state 14 
    547     NIL         shift, and go to state 15 
    548     CHAR        shift, and go to state 16 
    549     STRING      shift, and go to state 17 
    550     INTEGER     shift, and go to state 18 
    551     DOUBLE      shift, and go to state 19 
    552     IDENTIFIER  shift, and go to state 20 
    553     '-'         shift, and go to state 21 
    554     '('         shift, and go to state 22 
    555     '['         shift, and go to state 23 
    556  
    557     member_accessor  go to state 24 
    558     symbol_accessor  go to state 25 
    559     express          go to state 56 
    560     arbitrary_call   go to state 39 
    561     list_symbol      go to state 41 
    562     primitive        go to state 42 
    563  
    564  
    565 state 23 
    566  
    567    70 list_symbol: '[' . arguments ']' 
    568  
    569     TRUE        shift, and go to state 13 
    570     FALSE       shift, and go to state 14 
    571     NIL         shift, and go to state 15 
    572     CHAR        shift, and go to state 16 
    573     STRING      shift, and go to state 17 
    574     INTEGER     shift, and go to state 18 
    575     DOUBLE      shift, and go to state 19 
    576     IDENTIFIER  shift, and go to state 20 
    577     '-'         shift, and go to state 21 
    578     '('         shift, and go to state 22 
    579     '['         shift, and go to state 23 
    580  
    581     member_accessor  go to state 24 
    582     symbol_accessor  go to state 25 
    583     expression       go to state 49 
    584     express          go to state 28 
    585     arbitrary_call   go to state 39 
    586     list_symbol      go to state 41 
    587     arguments        go to state 57 
    588     argument_list    go to state 51 
    589     primitive        go to state 42 
    590  
    591  
    592 state 24 
    593  
    594    10 symbol_accessor: member_accessor . 
    595  
    596     $default  reduce using rule 10 (symbol_accessor) 
    597  
    598  
    599 state 25 
    600  
    601    15 express: symbol_accessor . '=' express 
    602    30        | symbol_accessor . PLUSPLUS 
    603    31        | symbol_accessor . MINMIN 
    604    32        | symbol_accessor . PLUS_EQUAL express 
    605    33        | symbol_accessor . MINUS_EQUAL express 
    606    34        | symbol_accessor . MULTIPLY_EQUAL express 
    607    35        | symbol_accessor . DIVIDE_EQUAL express 
    608    77 primitive: symbol_accessor . 
    609  
    610     PLUS_EQUAL      shift, and go to state 58 
    611     MULTIPLY_EQUAL  shift, and go to state 59 
    612     MINUS_EQUAL     shift, and go to state 60 
    613     DIVIDE_EQUAL    shift, and go to state 61 
    614     PLUSPLUS        shift, and go to state 62 
    615     MINMIN          shift, and go to state 63 
    616     '='             shift, and go to state 64 
    617  
    618     $default  reduce using rule 77 (primitive) 
    619  
    620  
    621 state 26 
    622  
    623     3 declarations: declarations function_definition . 
    624  
    625     $default  reduce using rule 3 (declarations) 
    626  
    627  
    628 state 27 
    629  
    630    56 statement: expression . ';' 
    631  
    632     ';'  shift, and go to state 65 
    633  
    634  
    635 state 28 
    636  
    637    14 expression: express . 
    638    16 express: express . '+' express 
    639    17        | express . '-' express 
    640    18        | express . '/' express 
    641    19        | express . '*' express 
    642    20        | express . '^' express 
    643    21        | express . LESS express 
    644    22        | express . GREATER express 
    645    23        | express . LESS_EQUAL express 
    646    24        | express . GREATER_EQUAL express 
    647    25        | express . EQUAL express 
    648    26        | express . NOT_EQUAL express 
    649    27        | express . OR express 
    650    28        | express . AND express 
    651  
    652     OR             shift, and go to state 66 
    653     AND            shift, and go to state 67 
    654     EQUAL          shift, and go to state 68 
    655     NOT_EQUAL      shift, and go to state 69 
    656     LESS           shift, and go to state 70 
    657     LESS_EQUAL     shift, and go to state 71 
    658     GREATER        shift, and go to state 72 
    659     GREATER_EQUAL  shift, and go to state 73 
    660     '-'            shift, and go to state 74 
    661     '+'            shift, and go to state 75 
    662     '*'            shift, and go to state 76 
    663     '/'            shift, and go to state 77 
    664     '^'            shift, and go to state 78 
    665  
    666     $default  reduce using rule 14 (expression) 
    667  
    668  
    669 state 29 
    670  
    671    43 control_structure: loop_while . 
    672  
    673     $default  reduce using rule 43 (control_structure) 
    674  
    675  
    676674state 30 
    677675 
    678    44 control_structure: loop_for . 
    679  
    680     $default  reduce using rule 44 (control_structure) 
     676    7 dot_accessor: accessor . 
     677 
     678    $default  reduce using rule 7 (dot_accessor) 
    681679 
    682680 
    683681state 31 
    684682 
    685    62 statement: control_structure . 
     683    9 accessor: symbol_accessor . 
     684   18 express: symbol_accessor . '=' express 
     685   33        | symbol_accessor . "++" 
     686   34        | symbol_accessor . "--" 
     687   35        | symbol_accessor . "+=" express 
     688   36        | symbol_accessor . "-=" express 
     689   37        | symbol_accessor . "*=" express 
     690   38        | symbol_accessor . "/=" express 
     691 
     692    "+="  shift, and go to state 67 
     693    "*="  shift, and go to state 68 
     694    "-="  shift, and go to state 69 
     695    "/="  shift, and go to state 70 
     696    "++"  shift, and go to state 71 
     697    "--"  shift, and go to state 72 
     698    '='   shift, and go to state 73 
     699 
     700    $default  reduce using rule 9 (accessor) 
     701 
     702 
     703state 32 
     704 
     705   49 control_structure: function_definition . 
     706 
     707    $default  reduce using rule 49 (control_structure) 
     708 
     709 
     710state 33 
     711 
     712   61 statement: expression . ';' 
     713 
     714    ';'  shift, and go to state 74 
     715 
     716 
     717state 34 
     718 
     719   17 expression: express . 
     720   19 express: express . '+' express 
     721   20        | express . '-' express 
     722   21        | express . '/' express 
     723   22        | express . '*' express 
     724   23        | express . '^' express 
     725   24        | express . "<" express 
     726   25        | express . ">" express 
     727   26        | express . "<=" express 
     728   27        | express . ">=" express 
     729   28        | express . "==" express 
     730   29        | express . "!=" express 
     731   30        | express . "||" express 
     732   31        | express . "&&" express 
     733 
     734    "||"  shift, and go to state 75 
     735    "&&"  shift, and go to state 76 
     736    "=="  shift, and go to state 77 
     737    "!="  shift, and go to state 78 
     738    "<"   shift, and go to state 79 
     739    "<="  shift, and go to state 80 
     740    ">"   shift, and go to state 81 
     741    ">="  shift, and go to state 82 
     742    '-'   shift, and go to state 83 
     743    '+'   shift, and go to state 84 
     744    '*'   shift, and go to state 85 
     745    '/'   shift, and go to state 86 
     746    '^'   shift, and go to state 87 
     747 
     748    $default  reduce using rule 17 (expression) 
     749 
     750 
     751state 35 
     752 
     753   46 control_structure: loop_while . 
     754 
     755    $default  reduce using rule 46 (control_structure) 
     756 
     757 
     758state 36 
     759 
     760   47 control_structure: loop_for . 
     761 
     762    $default  reduce using rule 47 (control_structure) 
     763 
     764 
     765state 37 
     766 
     767   67 statement: control_structure . 
     768 
     769    $default  reduce using rule 67 (statement) 
     770 
     771 
     772state 38 
     773 
     774   60 conditionals: struct_if . elif_block else_block 
     775 
     776    "elif"  shift, and go to state 88 
     777 
     778    $default  reduce using rule 56 (elif_block) 
     779 
     780    struct_elif        go to state 89 
     781    struct_elif_block  go to state 90 
     782    elif_block         go to state 91 
     783 
     784 
     785state 39 
     786 
     787   48 control_structure: conditionals . 
     788 
     789    $default  reduce using rule 48 (control_structure) 
     790 
     791 
     792state 40 
     793 
     794    2 declarations: declarations statement . 
     795 
     796    $default  reduce using rule 2 (declarations) 
     797 
     798 
     799state 41 
     800 
     801   66 statement: delete_keyword . ';' 
     802 
     803    ';'  shift, and go to state 92 
     804 
     805 
     806state 42 
     807 
     808   65 statement: continue_keyword . ';' 
     809 
     810    ';'  shift, and go to state 93 
     811 
     812 
     813state 43 
     814 
     815   63 statement: break_keyword . ';' 
     816 
     817    ';'  shift, and go to state 94 
     818 
     819 
     820state 44 
     821 
     822   64 statement: return_keyword . ';' 
     823 
     824    ';'  shift, and go to state 95 
     825 
     826 
     827state 45 
     828 
     829   10 accessor: arbitrary_call . 
     830 
     831    $default  reduce using rule 10 (accessor) 
     832 
     833 
     834state 46 
     835 
     836   62 statement: print_keyword . ';' 
     837 
     838    ';'  shift, and go to state 96 
     839 
     840 
     841state 47 
     842 
     843   90 primitive: list_symbol . 
     844 
     845    $default  reduce using rule 90 (primitive) 
     846 
     847 
     848state 48 
     849 
     850   40 express: primitive . 
     851 
     852    $default  reduce using rule 40 (express) 
     853 
     854 
     855state 49 
     856 
     857    4 class_definition: "object" IDENTIFIER . '{' procedure '}' 
     858 
     859    '{'  shift, and go to state 97 
     860 
     861 
     862state 50 
     863 
     864   14 function_definition: "defun" IDENTIFIER . '{' procedure '}' 
     865   15                    | "defun" IDENTIFIER . '(' ')' '{' procedure '}' 
     866   16                    | "defun" IDENTIFIER . '(' parameters ')' '{' procedure '}' 
     867 
     868    '{'  shift, and go to state 98 
     869    '('  shift, and go to state 99 
     870 
     871 
     872state 51 
     873 
     874   71 return_keyword: "return" expression . 
     875 
     876    $default  reduce using rule 71 (return_keyword) 
     877 
     878 
     879state 52 
     880 
     881   68 delete_keyword: "delete" IDENTIFIER . 
     882 
     883    $default  reduce using rule 68 (delete_keyword) 
     884 
     885 
     886state 53 
     887 
     888   44 loop_while: "while" '(' . expression ')' '{' procedure '}' 
     889 
     890    "new"       shift, and go to state 12 
     891    "true"      shift, and go to state 15 
     892    "false"     shift, and go to state 16 
     893    "nil"       shift, and go to state 17 
     894    CHAR        shift, and go to state 18 
     895    STRING      shift, and go to state 19 
     896    INTEGER     shift, and go to state 20 
     897    DOUBLE      shift, and go to state 21 
     898    IDENTIFIER  shift, and go to state 22 
     899    '-'         shift, and go to state 23 
     900    '['         shift, and go to state 24 
     901    '('         shift, and go to state 25 
     902 
     903    object_creation  go to state 27 
     904    dot_accessor     go to state 28 
     905    member_accessor  go to state 29 
     906    accessor         go to state 30 
     907    symbol_accessor  go to state 31 
     908    expression       go to state 100 
     909    express          go to state 34 
     910    arbitrary_call   go to state 45 
     911    list_symbol      go to state 47 
     912    primitive        go to state 48 
     913 
     914 
     915state 54 
     916 
     917   45 loop_for: "for" '(' . expression ';' expression ';' expression ')' '{' procedure '}' 
     918 
     919    "new"       shift, and go to state 12 
     920    "true"      shift, and go to state 15 
     921    "false"     shift, and go to state 16 
     922    "nil"       shift, and go to state 17 
     923    CHAR        shift, and go to state 18 
     924    STRING      shift, and go to state 19 
     925    INTEGER     shift, and go to state 20 
     926    DOUBLE      shift, and go to state 21 
     927    IDENTIFIER  shift, and go to state 22 
     928    '-'         shift, and go to state 23 
     929    '['         shift, and go to state 24 
     930    '('         shift, and go to state 25 
     931 
     932    object_creation  go to state 27 
     933    dot_accessor     go to state 28 
     934    member_accessor  go to state 29 
     935    accessor         go to state 30 
     936    symbol_accessor  go to state 31 
     937    expression       go to state 101 
     938    express          go to state 34 
     939    arbitrary_call   go to state 45 
     940    list_symbol      go to state 47 
     941    primitive        go to state 48 
     942 
     943 
     944state 55 
     945 
     946   72 arbitrary_call: IDENTIFIER . '(' ')' 
     947   73               | IDENTIFIER . '(' arguments ')' 
     948 
     949    '('  shift, and go to state 62 
     950 
     951 
     952state 56 
     953 
     954    5 object_creation: "new" arbitrary_call . 
     955 
     956    $default  reduce using rule 5 (object_creation) 
     957 
     958 
     959state 57 
     960 
     961   51 struct_if: "if" '(' . expression ')' '{' procedure '}' 
     962 
     963    "new"       shift, and go to state 12 
     964    "true"      shift, and go to state 15 
     965    "false"     shift, and go to state 16 
     966    "nil"       shift, and go to state 17 
     967    CHAR        shift, and go to state 18 
     968    STRING      shift, and go to state 19 
     969    INTEGER     shift, and go to state 20 
     970    DOUBLE      shift, and go to state 21 
     971    IDENTIFIER  shift, and go to state 22 
     972    '-'         shift, and go to state 23 
     973    '['         shift, and go to state 24 
     974    '('         shift, and go to state 25 
     975 
     976    object_creation  go to state 27 
     977    dot_accessor     go to state 28 
     978    member_accessor  go to state 29 
     979    accessor         go to state 30 
     980    symbol_accessor  go to state 31 
     981    expression       go to state 102 
     982    express          go to state 34 
     983    arbitrary_call   go to state 45 
     984    list_symbol      go to state 47 
     985    primitive        go to state 48 
     986 
     987 
     988state 58 
     989 
     990   81 argument_list: expression . 
     991 
     992    $default  reduce using rule 81 (argument_list) 
     993 
     994 
     995state 59 
     996 
     997   74 print_keyword: "print" arguments . 
     998 
     999    $default  reduce using rule 74 (print_keyword) 
     1000 
     1001 
     1002state 60 
     1003 
     1004   79 arguments: argument_list . 
     1005   80 argument_list: argument_list . ',' expression 
     1006 
     1007    ','  shift, and go to state 103 
     1008 
     1009    $default  reduce using rule 79 (arguments) 
     1010 
     1011 
     1012state 61 
     1013 
     1014   13 symbol_accessor: IDENTIFIER '[' . expression ']' 
     1015 
     1016    "new"       shift, and go to state 12 
     1017    "true"      shift, and go to state 15 
     1018    "false"     shift, and go to state 16 
     1019    "nil"       shift, and go to state 17 
     1020    CHAR        shift, and go to state 18 
     1021    STRING      shift, and go to state 19 
     1022    INTEGER     shift, and go to state 20 
     1023    DOUBLE      shift, and go to state 21 
     1024    IDENTIFIER  shift, and go to state 22 
     1025    '-'         shift, and go to state 23 
     1026    '['         shift, and go to state 24 
     1027    '('         shift, and go to state 25 
     1028 
     1029    object_creation  go to state 27 
     1030    dot_accessor     go to state 28 
     1031    member_accessor  go to state 29 
     1032    accessor         go to state 30 
     1033    symbol_accessor  go to state 31 
     1034    expression       go to state 104 
     1035    express          go to state 34 
     1036    arbitrary_call   go to state 45 
     1037    list_symbol      go to state 47 
     1038    primitive        go to state 48 
     1039 
     1040 
     1041state 62 
     1042 
     1043   72 arbitrary_call: IDENTIFIER '(' . ')' 
     1044   73               | IDENTIFIER '(' . arguments ')' 
     1045 
     1046    "new"       shift, and go to state 12 
     1047    "true"      shift, and go to state 15 
     1048    "false"     shift, and go to state 16 
     1049    "nil"       shift, and go to state 17 
     1050    CHAR        shift, and go to state 18 
     1051    STRING      shift, and go to state 19 
     1052    INTEGER     shift, and go to state 20 
     1053    DOUBLE      shift, and go to state 21 
     1054    IDENTIFIER  shift, and go to state 22 
     1055    '-'         shift, and go to state 23 
     1056    '['         shift, and go to state 24 
     1057    '('         shift, and go to state 25 
     1058    ')'         shift, and go to state 105 
     1059 
     1060    object_creation  go to state 27 
     1061    dot_accessor     go to state 28 
     1062    member_accessor  go to state 29 
     1063    accessor         go to state 30 
     1064    symbol_accessor  go to state 31 
     1065    expression       go to state 58 
     1066    express          go to state 34 
     1067    arbitrary_call   go to state 45 
     1068    list_symbol      go to state 47 
     1069    arguments        go to state 106 
     1070    argument_list    go to state 60 
     1071    primitive        go to state 48 
     1072 
     1073 
     1074state 63 
     1075 
     1076   19 express: express . '+' express 
     1077   20        | express . '-' express 
     1078   21        | express . '/' express 
     1079   22        | express . '*' express 
     1080   23        | express . '^' express 
     1081   24        | express . "<" express 
     1082   25        | express . ">" express 
     1083   26        | express . "<=" express 
     1084   27        | express . ">=" express 
     1085   28        | express . "==" express 
     1086   29        | express . "!=" express 
     1087   30        | express . "||" express 
     1088   31        | express . "&&" express 
     1089   32        | '-' express . 
     1090 
     1091    $default  reduce using rule 32 (express) 
     1092 
     1093 
     1094state 64 
     1095 
     1096   75 list_symbol: '[' arguments . ']' 
     1097 
     1098    ']'  shift, and go to state 107 
     1099 
     1100 
     1101state 65 
     1102 
     1103   19 express: express . '+' express 
     1104   20        | express . '-' express 
     1105   21        | express . '/' express 
     1106   22        | express . '*' express 
     1107   23        | express . '^' express 
     1108   24        | express . "<" express 
     1109   25        | express . ">" express 
     1110   26        | express . "<=" express 
     1111   27        | express . ">=" express 
     1112   28        | express . "==" express 
     1113   29        | express . "!=" express 
     1114   30        | express . "||" express 
     1115   31        | express . "&&" express 
     1116   39        | '(' express . ')' 
     1117 
     1118    "||"  shift, and go to state 75 
     1119    "&&"  shift, and go to state 76 
     1120    "=="  shift, and go to state 77 
     1121    "!="  shift, and go to state 78 
     1122    "<"   shift, and go to state 79 
     1123    "<="  shift, and go to state 80 
     1124    ">"   shift, and go to state 81 
     1125    ">="  shift, and go to state 82 
     1126    '-'   shift, and go to state 83 
     1127    '+'   shift, and go to state 84 
     1128    '*'   shift, and go to state 85 
     1129    '/'   shift, and go to state 86 
     1130    '^'   shift, and go to state 87 
     1131    ')'   shift, and go to state 108 
     1132 
     1133 
     1134state 66 
     1135 
     1136    6 dot_accessor: dot_accessor '.' . accessor 
     1137 
     1138    "new"       shift, and go to state 12 
     1139    IDENTIFIER  shift, and go to state 22 
     1140 
     1141    object_creation  go to state 27 
     1142    accessor         go to state 109 
     1143    symbol_accessor  go to state 110 
     1144    arbitrary_call   go to state 45 
     1145 
     1146 
     1147state 67 
     1148 
     1149   35 express: symbol_accessor "+=" . express 
     1150 
     1151    "new"       shift, and go to state 12 
     1152    "true"      shift, and go to state 15 
     1153    "false"     shift, and go to state 16 
     1154    "nil"       shift, and go to state 17 
     1155    CHAR        shift, and go to state 18 
     1156    STRING      shift, and go to state 19 
     1157    INTEGER     shift, and go to state 20 
     1158    DOUBLE      shift, and go to state 21 
     1159    IDENTIFIER  shift, and go to state 22 
     1160    '-'         shift, and go to state 23 
     1161    '['         shift, and go to state 24 
     1162    '('         shift, and go to state 25 
     1163 
     1164    object_creation  go to state 27 
     1165    dot_accessor     go to state 28 
     1166    member_accessor  go to state 29 
     1167    accessor         go to state 30 
     1168    symbol_accessor  go to state 31 
     1169    express          go to state 111 
     1170    arbitrary_call   go to state 45 
     1171    list_symbol      go to state 47 
     1172    primitive        go to state 48 
     1173 
     1174 
     1175state 68 
     1176 
     1177   37 express: symbol_accessor "*=" . express 
     1178 
     1179    "new"       shift, and go to state 12 
     1180    "true"      shift, and go to state 15 
     1181    "false"     shift, and go to state 16 
     1182    "nil"       shift, and go to state 17 
     1183    CHAR        shift, and go to state 18 
     1184    STRING      shift, and go to state 19 
     1185    INTEGER     shift, and go to state 20 
     1186    DOUBLE      shift, and go to state 21 
     1187    IDENTIFIER  shift, and go to state 22 
     1188    '-'         shift, and go to state 23 
     1189    '['         shift, and go to state 24 
     1190    '('         shift, and go to state 25 
     1191 
     1192    object_creation  go to state 27 
     1193    dot_accessor     go to state 28 
     1194    member_accessor  go to state 29 
     1195    accessor         go to state 30 
     1196    symbol_accessor  go to state 31 
     1197    express          go to state 112 
     1198    arbitrary_call   go to state 45 
     1199    list_symbol      go to state 47 
     1200    primitive        go to state 48 
     1201 
     1202 
     1203state 69 
     1204 
     1205   36 express: symbol_accessor "-=" . express 
     1206 
     1207    "new"       shift, and go to state 12 
     1208    "true"      shift, and go to state 15 
     1209    "false"     shift, and go to state 16 
     1210    "nil"       shift, and go to state 17 
     1211    CHAR        shift, and go to state 18 
     1212    STRING      shift, and go to state 19 
     1213    INTEGER     shift, and go to state 20 
     1214    DOUBLE      shift, and go to state 21 
     1215    IDENTIFIER  shift, and go to state 22 
     1216    '-'         shift, and go to state 23 
     1217    '['         shift, and go to state 24 
     1218    '('         shift, and go to state 25 
     1219 
     1220    object_creation  go to state 27 
     1221    dot_accessor     go to state 28 
     1222    member_accessor  go to state 29 
     1223    accessor         go to state 30 
     1224    symbol_accessor  go to state 31 
     1225    express          go to state 113 
     1226    arbitrary_call   go to state 45 
     1227    list_symbol      go to state 47 
     1228    primitive        go to state 48 
     1229 
     1230 
     1231state 70 
     1232 
     1233   38 express: symbol_accessor "/=" . express 
     1234 
     1235    "new"       shift, and go to state 12 
     1236    "true"      shift, and go to state 15 
     1237    "false"     shift, and go to state 16 
     1238    "nil"       shift, and go to state 17 
     1239    CHAR        shift, and go to state 18 
     1240    STRING      shift, and go to state 19 
     1241    INTEGER     shift, and go to state 20 
     1242    DOUBLE      shift, and go to state 21 
     1243    IDENTIFIER  shift, and go to state 22 
     1244    '-'         shift, and go to state 23 
     1245    '['         shift, and go to state 24 
     1246    '('         shift, and go to state 25 
     1247 
     1248    object_creation  go to state 27 
     1249    dot_accessor     go to state 28 
     1250    member_accessor  go to state 29 
     1251    accessor         go to state 30 
     1252    symbol_accessor  go to state 31 
     1253    express          go to state 114 
     1254    arbitrary_call   go to state 45 
     1255    list_symbol      go to state 47 
     1256    primitive        go to state 48 
     1257 
     1258 
     1259state 71 
     1260 
     1261   33 express: symbol_accessor "++" . 
     1262 
     1263    $default  reduce using rule 33 (express) 
     1264 
     1265 
     1266state 72 
     1267 
     1268   34 express: symbol_accessor "--" . 
     1269 
     1270    $default  reduce using rule 34 (express) 
     1271 
     1272 
     1273state 73 
     1274 
     1275   18 express: symbol_accessor '=' . express 
     1276 
     1277    "new"       shift, and go to state 12 
     1278    "true"      shift, and go to state 15 
     1279    "false"     shift, and go to state 16 
     1280    "nil"       shift, and go to state 17 
     1281    CHAR        shift, and go to state 18 
     1282    STRING      shift, and go to state 19 
     1283    INTEGER     shift, and go to state 20 
     1284    DOUBLE      shift, and go to state 21 
     1285    IDENTIFIER  shift, and go to state 22 
     1286    '-'         shift, and go to state 23 
     1287    '['         shift, and go to state 24 
     1288    '('         shift, and go to state 25 
     1289 
     1290    object_creation  go to state 27 
     1291    dot_accessor     go to state 28 
     1292    member_accessor  go to state 29 
     1293    accessor         go to state 30 
     1294    symbol_accessor  go to state 31 
     1295    express          go to state 115 
     1296    arbitrary_call   go to state 45 
     1297    list_symbol      go to state 47 
     1298    primitive        go to state 48 
     1299 
     1300 
     1301state 74 
     1302 
     1303   61 statement: expression ';' . 
     1304 
     1305    $default  reduce using rule 61 (statement) 
     1306 
     1307 
     1308state 75 
     1309 
     1310   30 express: express "||" . express 
     1311 
     1312    "new"       shift, and go to state 12 
     1313    "true"      shift, and go to state 15 
     1314    "false"     shift, and go to state 16 
     1315    "nil"       shift, and go to state 17 
     1316    CHAR        shift, and go to state 18 
     1317    STRING      shift, and go to state 19 
     1318    INTEGER     shift, and go to state 20 
     1319    DOUBLE      shift, and go to state 21 
     1320    IDENTIFIER  shift, and go to state 22 
     1321    '-'         shift, and go to state 23 
     1322    '['         shift, and go to state 24 
     1323    '('         shift, and go to state 25 
     1324 
     1325    object_creation  go to state 27 
     1326    dot_accessor     go to state 28 
     1327    member_accessor  go to state 29 
     1328    accessor         go to state 30 
     1329    symbol_accessor  go to state 31 
     1330    express          go to state 116 
     1331    arbitrary_call   go to state 45 
     1332    list_symbol      go to state 47 
     1333    primitive        go to state 48 
     1334 
     1335 
     1336state 76 
     1337 
     1338   31 express: express "&&" . express 
     1339 
     1340    "new"       shift, and go to state 12 
     1341    "true"      shift, and go to state 15 
     1342    "false"     shift, and go to state 16 
     1343    "nil"       shift, and go to state 17 
     1344    CHAR        shift, and go to state 18 
     1345    STRING      shift, and go to state 19 
     1346    INTEGER     shift, and go to state 20 
     1347    DOUBLE      shift, and go to state 21 
     1348    IDENTIFIER  shift, and go to state 22 
     1349    '-'         shift, and go to state 23 
     1350    '['         shift, and go to state 24 
     1351    '('         shift, and go to state 25 
     1352 
     1353    object_creation  go to state 27 
     1354    dot_accessor     go to state 28 
     1355    member_accessor  go to state 29 
     1356    accessor         go to state 30 
     1357    symbol_accessor  go to state 31 
     1358    express          go to state 117 
     1359    arbitrary_call   go to state 45 
     1360    list_symbol      go to state 47 
     1361    primitive        go to state 48 
     1362 
     1363 
     1364state 77 
     1365 
     1366   28 express: express "==" . express 
     1367 
     1368    "new"       shift, and go to state 12 
     1369    "true"      shift, and go to state 15 
     1370    "false"     shift, and go to state 16 
     1371    "nil"       shift, and go to state 17 
     1372    CHAR        shift, and go to state 18 
     1373    STRING      shift, and go to state 19 
     1374    INTEGER     shift, and go to state 20 
     1375    DOUBLE      shift, and go to state 21 
     1376    IDENTIFIER  shift, and go to state 22 
     1377    '-'         shift, and go to state 23 
     1378    '['         shift, and go to state 24 
     1379    '('         shift, and go to state 25 
     1380 
     1381    object_creation  go to state 27 
     1382    dot_accessor     go to state 28 
     1383    member_accessor  go to state 29 
     1384    accessor         go to state 30 
     1385    symbol_accessor  go to state 31 
     1386    express          go to state 118 
     1387    arbitrary_call   go to state 45 
     1388    list_symbol      go to state 47 
     1389    primitive        go to state 48 
     1390 
     1391 
     1392state 78 
     1393 
     1394   29 express: express "!=" . express 
     1395 
     1396    "new"       shift, and go to state 12 
     1397    "true"      shift, and go to state 15 
     1398    "false"     shift, and go to state 16 
     1399    "nil"       shift, and go to state 17 
     1400    CHAR        shift, and go to state 18 
     1401    STRING      shift, and go to state 19 
     1402    INTEGER     shift, and go to state 20 
     1403    DOUBLE      shift, and go to state 21 
     1404    IDENTIFIER  shift, and go to state 22 
     1405    '-'         shift, and go to state 23 
     1406    '['         shift, and go to state 24 
     1407    '('         shift, and go to state 25 
     1408 
     1409    object_creation  go to state 27 
     1410    dot_accessor     go to state 28 
     1411    member_accessor  go to state 29 
     1412    accessor         go to state 30 
     1413    symbol_accessor  go to state 31 
     1414    express          go to state 119 
     1415    arbitrary_call   go to state 45 
     1416    list_symbol      go to state 47 
     1417    primitive        go to state 48 
     1418 
     1419 
     1420state 79 
     1421 
     1422   24 express: express "<" . express 
     1423 
     1424    "new"       shift, and go to state 12 
     1425    "true"      shift, and go to state 15 
     1426    "false"     shift, and go to state 16 
     1427    "nil"       shift, and go to state 17 
     1428    CHAR        shift, and go to state 18 
     1429    STRING      shift, and go to state 19 
     1430    INTEGER     shift, and go to state 20 
     1431    DOUBLE      shift, and go to state 21 
     1432    IDENTIFIER  shift, and go to state 22 
     1433    '-'         shift, and go to state 23 
     1434    '['         shift, and go to state 24 
     1435    '('         shift, and go to state 25 
     1436 
     1437    object_creation  go to state 27 
     1438    dot_accessor     go to state 28 
     1439    member_accessor  go to state 29 
     1440    accessor         go to state 30 
     1441    symbol_accessor  go to state 31 
     1442    express          go to state 120 
     1443    arbitrary_call   go to state 45 
     1444    list_symbol      go to state 47 
     1445    primitive        go to state 48 
     1446 
     1447 
     1448state 80 
     1449 
     1450   26 express: express "<=" . express 
     1451 
     1452    "new"       shift, and go to state 12 
     1453    "true"      shift, and go to state 15 
     1454    "false"     shift, and go to state 16 
     1455    "nil"       shift, and go to state 17 
     1456    CHAR        shift, and go to state 18 
     1457    STRING      shift, and go to state 19 
     1458    INTEGER     shift, and go to state 20 
     1459    DOUBLE      shift, and go to state 21 
     1460    IDENTIFIER  shift, and go to state 22 
     1461    '-'         shift, and go to state 23 
     1462    '['         shift, and go to state 24 
     1463    '('         shift, and go to state 25 
     1464 
     1465    object_creation  go to state 27 
     1466    dot_accessor     go to state 28 
     1467    member_accessor  go to state 29 
     1468    accessor         go to state 30 
     1469    symbol_accessor  go to state 31 
     1470    express          go to state 121 
     1471    arbitrary_call   go to state 45 
     1472    list_symbol      go to state 47 
     1473    primitive        go to state 48 
     1474 
     1475 
     1476state 81 
     1477 
     1478   25 express: express ">" . express 
     1479 
     1480    "new"       shift, and go to state 12 
     1481    "true"      shift, and go to state 15 
     1482    "false"     shift, and go to state 16 
     1483    "nil"       shift, and go to state 17 
     1484    CHAR        shift, and go to state 18 
     1485    STRING      shift, and go to state 19 
     1486    INTEGER     shift, and go to state 20 
     1487    DOUBLE      shift, and go to state 21 
     1488    IDENTIFIER  shift, and go to state 22 
     1489    '-'         shift, and go to state 23 
     1490    '['         shift, and go to state 24 
     1491    '('         shift, and go to state 25 
     1492 
     1493    object_creation  go to state 27 
     1494    dot_accessor     go to state 28 
     1495    member_accessor  go to state 29 
     1496    accessor         go to state 30 
     1497    symbol_accessor  go to state 31 
     1498    express          go to state 122 
     1499    arbitrary_call   go to state 45 
     1500    list_symbol      go to state 47 
     1501    primitive        go to state 48 
     1502 
     1503 
     1504state 82 
     1505 
     1506   27 express: express ">=" . express 
     1507 
     1508    "new"       shift, and go to state 12 
     1509    "true"      shift, and go to state 15 
     1510    "false"     shift, and go to state 16 
     1511    "nil"       shift, and go to state 17 
     1512    CHAR        shift, and go to state 18 
     1513    STRING      shift, and go to state 19 
     1514    INTEGER     shift, and go to state 20 
     1515    DOUBLE      shift, and go to state 21 
     1516    IDENTIFIER  shift, and go to state 22 
     1517    '-'         shift, and go to state 23 
     1518    '['         shift, and go to state 24 
     1519    '('         shift, and go to state 25 
     1520 
     1521    object_creation  go to state 27 
     1522    dot_accessor     go to state 28 
     1523    member_accessor  go to state 29 
     1524    accessor         go to state 30 
     1525    symbol_accessor  go to state 31 
     1526    express          go to state 123 
     1527    arbitrary_call   go to state 45 
     1528    list_symbol      go to state 47 
     1529    primitive        go to state 48 
     1530 
     1531 
     1532state 83 
     1533 
     1534   20 express: express '-' . express 
     1535 
     1536    "new"       shift, and go to state 12 
     1537    "true"      shift, and go to state 15 
     1538    "false"     shift, and go to state 16 
     1539    "nil"       shift, and go to state 17 
     1540    CHAR        shift, and go to state 18 
     1541    STRING      shift, and go to state 19 
     1542    INTEGER     shift, and go to state 20 
     1543    DOUBLE      shift, and go to state 21 
     1544    IDENTIFIER  shift, and go to state 22 
     1545    '-'         shift, and go to state 23 
     1546    '['         shift, and go to state 24 
     1547    '('         shift, and go to state 25 
     1548 
     1549    object_creation  go to state 27 
     1550    dot_accessor     go to state 28 
     1551    member_accessor  go to state 29 
     1552    accessor         go to state 30 
     1553    symbol_accessor  go to state 31 
     1554    express          go to state 124 
     1555    arbitrary_call   go to state 45 
     1556    list_symbol      go to state 47 
     1557    primitive        go to state 48 
     1558 
     1559 
     1560state 84 
     1561 
     1562   19 express: express '+' . express 
     1563 
     1564    "new"       shift, and go to state 12 
     1565    "true"      shift, and go to state 15 
     1566    "false"     shift, and go to state 16 
     1567    "nil"       shift, and go to state 17 
     1568    CHAR        shift, and go to state 18 
     1569    STRING      shift, and go to state 19 
     1570    INTEGER     shift, and go to state 20 
     1571    DOUBLE      shift, and go to state 21 
     1572    IDENTIFIER  shift, and go to state 22 
     1573    '-'         shift, and go to state 23 
     1574    '['         shift, and go to state 24 
     1575    '('         shift, and go to state 25 
     1576 
     1577    object_creation  go to state 27 
     1578    dot_accessor     go to state 28 
     1579    member_accessor  go to state 29 
     1580    accessor         go to state 30 
     1581    symbol_accessor  go to state 31 
     1582    express          go to state 125 
     1583    arbitrary_call   go to state 45 
     1584    list_symbol      go to state 47 
     1585    primitive        go to state 48 
     1586 
     1587 
     1588state 85 
     1589 
     1590   22 express: express '*' . express 
     1591 
     1592    "new"       shift, and go to state 12 
     1593    "true"      shift, and go to state 15 
     1594    "false"     shift, and go to state 16 
     1595    "nil"       shift, and go to state 17 
     1596    CHAR        shift, and go to state 18 
     1597    STRING      shift, and go to state 19 
     1598    INTEGER     shift, and go to state 20 
     1599    DOUBLE      shift, and go to state 21 
     1600    IDENTIFIER  shift, and go to state 22 
     1601    '-'         shift, and go to state 23 
     1602    '['         shift, and go to state 24 
     1603    '('         shift, and go to state 25 
     1604 
     1605    object_creation  go to state 27 
     1606    dot_accessor     go to state 28 
     1607    member_accessor  go to state 29 
     1608    accessor         go to state 30 
     1609    symbol_accessor  go to state 31 
     1610    express          go to state 126 
     1611    arbitrary_call   go to state 45 
     1612    list_symbol      go to state 47 
     1613    primitive        go to state 48 
     1614 
     1615 
     1616state 86 
     1617 
     1618   21 express: express '/' . express 
     1619 
     1620    "new"       shift, and go to state 12 
     1621    "true"      shift, and go to state 15 
     1622    "false"     shift, and go to state 16 
     1623    "nil"       shift, and go to state 17 
     1624    CHAR        shift, and go to state 18 
     1625    STRING      shift, and go to state 19 
     1626    INTEGER     shift, and go to state 20 
     1627    DOUBLE      shift, and go to state 21 
     1628    IDENTIFIER  shift, and go to state 22 
     1629    '-'         shift, and go to state 23 
     1630    '['         shift, and go to state 24 
     1631    '('         shift, and go to state 25 
     1632 
     1633    object_creation  go to state 27 
     1634    dot_accessor     go to state 28 
     1635    member_accessor  go to state 29 
     1636    accessor         go to state 30 
     1637    symbol_accessor  go to state 31 
     1638    express          go to state 127 
     1639    arbitrary_call   go to state 45 
     1640    list_symbol      go to state 47 
     1641    primitive        go to state 48 
     1642 
     1643 
     1644state 87 
     1645 
     1646   23 express: express '^' . express 
     1647 
     1648    "new"       shift, and go to state 12 
     1649    "true"      shift, and go to state 15 
     1650    "false"     shift, and go to state 16 
     1651    "nil"       shift, and go to state 17 
     1652    CHAR        shift, and go to state 18 
     1653    STRING      shift, and go to state 19 
     1654    INTEGER     shift, and go to state 20 
     1655    DOUBLE      shift, and go to state 21 
     1656    IDENTIFIER  shift, and go to state 22 
     1657    '-'         shift, and go to state 23 
     1658    '['         shift, and go to state 24 
     1659    '('         shift, and go to state 25 
     1660 
     1661    object_creation  go to state 27 
     1662    dot_accessor     go to state 28 
     1663    member_accessor  go to state 29 
     1664    accessor         go to state 30 
     1665    symbol_accessor  go to state 31 
     1666    express          go to state 128 
     1667    arbitrary_call   go to state 45 
     1668    list_symbol      go to state 47 
     1669    primitive        go to state 48 
     1670 
     1671 
     1672state 88 
     1673 
     1674   52 struct_elif: "elif" . '(' expression ')' '{' procedure '}' 
     1675 
     1676    '('  shift, and go to state 129 
     1677 
     1678 
     1679state 89 
     1680 
     1681   55 struct_elif_block: struct_elif . 
     1682 
     1683    $default  reduce using rule 55 (struct_elif_block) 
     1684 
     1685 
     1686state 90 
     1687 
     1688   54 struct_elif_block: struct_elif_block . struct_elif 
     1689   57 elif_block: struct_elif_block . 
     1690 
     1691    "elif"  shift, and go to state 88 
     1692 
     1693    $default  reduce using rule 57 (elif_block) 
     1694 
     1695    struct_elif  go to state 130 
     1696 
     1697 
     1698state 91 
     1699 
     1700   60 conditionals: struct_if elif_block . else_block 
     1701 
     1702    "else"  shift, and go to state 131 
     1703 
     1704    $default  reduce using rule 58 (else_block) 
     1705 
     1706    struct_else  go to state 132 
     1707    else_block   go to state 133 
     1708 
     1709 
     1710state 92 
     1711 
     1712   66 statement: delete_keyword ';' . 
     1713 
     1714    $default  reduce using rule 66 (statement) 
     1715 
     1716 
     1717state 93 
     1718 
     1719   65 statement: continue_keyword ';' . 
     1720 
     1721    $default  reduce using rule 65 (statement) 
     1722 
     1723 
     1724state 94 
     1725 
     1726   63 statement: break_keyword ';' . 
     1727 
     1728    $default  reduce using rule 63 (statement) 
     1729 
     1730 
     1731state 95 
     1732 
     1733   64 statement: return_keyword ';' . 
     1734 
     1735    $default  reduce using rule 64 (statement) 
     1736 
     1737 
     1738state 96 
     1739 
     1740   62 statement: print_keyword ';' . 
    6861741 
    6871742    $default  reduce using rule 62 (statement) 
    6881743 
    6891744 
    690 state 32 
    691  
    692    55 conditionals: struct_if . elif_block else_block 
    693  
    694     ELIF  shift, and go to state 79 
    695  
    696     $default  reduce using rule 51 (elif_block) 
    697  
    698     struct_elif        go to state 80 
    699     struct_elif_block  go to state 81 
    700     elif_block         go to state 82 
    701  
    702  
    703 state 33 
    704  
    705    45 control_structure: conditionals . 
    706  
    707     $default  reduce using rule 45 (control_structure) 
    708  
    709  
    710 state 34 
    711  
    712     2 declarations: declarations statement . 
    713  
    714     $default  reduce using rule 2 (declarations) 
    715  
    716  
    717 state 35 
    718  
    719    61 statement: delete_keyword . ';' 
    720  
    721     ';'  shift, and go to state 83 
    722  
    723  
    724 state 36 
    725  
    726    60 statement: continue_keyword . ';' 
    727  
    728     ';'  shift, and go to state 84 
    729  
    730  
    731 state 37 
    732  
    733    58 statement: break_keyword . ';' 
    734  
    735     ';'  shift, and go to state 85 
    736  
    737  
    738 state 38 
    739  
    740    59 statement: return_keyword . ';' 
    741  
    742     ';'  shift, and go to state 86 
    743  
    744  
    745 state 39 
    746  
    747    78 primitive: arbitrary_call . 
    748  
    749     $default  reduce using rule 78 (primitive) 
    750  
    751  
    752 state 40 
    753  
    754    57 statement: print_keyword . ';' 
    755  
    756     ';'  shift, and go to state 87 
    757  
    758  
    759 state 41 
    760  
    761    86 primitive: list_symbol . 
    762  
    763     $default  reduce using rule 86 (primitive) 
    764  
    765  
    766 state 42 
    767  
    768    37 express: primitive . 
     1745state 97 
     1746 
     1747    4 class_definition: "object" IDENTIFIER '{' . procedure '}' 
     1748 
     1749    "object"    shift, and go to state 4 
     1750    "defun"     shift, and go to state 5 
     1751    "break"     shift, and go to state 6 
     1752    "conintue"  shift, and go to state 7 
     1753    "return"    shift, and go to state 8 
     1754    "delete"    shift, and go to state 9 
     1755    "while"     shift, and go to state 10 
     1756    "for"       shift, and go to state 11 
     1757    "new"       shift, and go to state 12 
     1758    "if"        shift, and go to state 13 
     1759    "print"     shift, and go to state 14 
     1760    "true"      shift, and go to state 15 
     1761    "false"     shift, and go to state 16 
     1762    "nil"       shift, and go to state 17 
     1763    CHAR        shift, and go to state 18 
     1764    STRING      shift, and go to state 19 
     1765    INTEGER     shift, and go to state 20 
     1766    DOUBLE      shift, and go to state 21 
     1767    IDENTIFIER  shift, and go to state 22 
     1768    '-'         shift, and go to state 23 
     1769    '['         shift, and go to state 24 
     1770    '('         shift, and go to state 25 
     1771 
     1772    class_definition     go to state 26 
     1773    object_creation      go to state 27 
     1774    dot_accessor         go to state 28 
     1775    member_accessor      go to state 29 
     1776    accessor             go to state 30 
     1777    symbol_accessor      go to state 31 
     1778    function_definition  go to state 32 
     1779    expression           go to state 33 
     1780    express              go to state 34 
     1781    procedure            go to state 134 
     1782    pblock               go to state 135 
     1783    loop_while           go to state 35 
     1784    loop_for             go to state 36 
     1785    control_structure    go to state 37 
     1786    struct_if            go to state 38 
     1787    conditionals         go to state 39 
     1788    statement            go to state 136 
     1789    delete_keyword       go to state 41 
     1790    continue_keyword     go to state 42 
     1791    break_keyword        go to state 43 
     1792    return_keyword       go to state 44 
     1793    arbitrary_call       go to state 45 
     1794    print_keyword        go to state 46 
     1795    list_symbol          go to state 47 
     1796    primitive            go to state 48 
     1797 
     1798 
     1799state 98 
     1800 
     1801   14 function_definition: "defun" IDENTIFIER '{' . procedure '}' 
     1802 
     1803    "object"    shift, and go to state 4 
     1804    "defun"     shift, and go to state 5 
     1805    "break"     shift, and go to state 6 
     1806    "conintue"  shift, and go to state 7 
     1807    "return"    shift, and go to state 8 
     1808    "delete"    shift, and go to state 9 
     1809    "while"     shift, and go to state 10 
     1810    "for"       shift, and go to state 11 
     1811    "new"       shift, and go to state 12 
     1812    "if"        shift, and go to state 13 
     1813    "print"     shift, and go to state 14 
     1814    "true"      shift, and go to state 15 
     1815    "false"     shift, and go to state 16 
     1816    "nil"       shift, and go to state 17 
     1817    CHAR        shift, and go to state 18 
     1818    STRING      shift, and go to state 19 
     1819    INTEGER     shift, and go to state 20 
     1820    DOUBLE      shift, and go to state 21 
     1821    IDENTIFIER  shift, and go to state 22 
     1822    '-'         shift, and go to state 23 
     1823    '['         shift, and go to state 24 
     1824    '('         shift, and go to state 25 
     1825 
     1826    class_definition     go to state 26 
     1827    object_creation      go to state 27 
     1828    dot_accessor         go to state 28 
     1829    member_accessor      go to state 29 
     1830    accessor             go to state 30 
     1831    symbol_accessor      go to state 31 
     1832    function_definition  go to state 32 
     1833    expression           go to state 33 
     1834    express              go to state 34 
     1835    procedure            go to state 137 
     1836    pblock               go to state 135 
     1837    loop_while           go to state 35 
     1838    loop_for             go to state 36 
     1839    control_structure    go to state 37 
     1840    struct_if            go to state 38 
     1841    conditionals         go to state 39 
     1842    statement            go to state 136 
     1843    delete_keyword       go to state 41 
     1844    continue_keyword     go to state 42 
     1845    break_keyword        go to state 43 
     1846    return_keyword       go to state 44 
     1847    arbitrary_call       go to state 45 
     1848    print_keyword        go to state 46 
     1849    list_symbol          go to state 47 
     1850    primitive            go to state 48 
     1851 
     1852 
     1853state 99 
     1854 
     1855   15 function_definition: "defun" IDENTIFIER '(' . ')' '{' procedure '}' 
     1856   16                    | "defun" IDENTIFIER '(' . parameters ')' '{' procedure '}' 
     1857 
     1858    IDENTIFIER  shift, and go to state 138 
     1859    ')'         shift, and go to state 139 
     1860 
     1861    parameters_expression  go to state 140 
     1862    parameters             go to state 141 
     1863 
     1864 
     1865state 100 
     1866 
     1867   44 loop_while: "while" '(' expression . ')' '{' procedure '}' 
     1868 
     1869    ')'  shift, and go to state 142 
     1870 
     1871 
     1872state 101 
     1873 
     1874   45 loop_for: "for" '(' expression . ';' expression ';' expression ')' '{' procedure '}' 
     1875 
     1876    ';'  shift, and go to state 143 
     1877 
     1878 
     1879state 102 
     1880 
     1881   51 struct_if: "if" '(' expression . ')' '{' procedure '}' 
     1882 
     1883    ')'  shift, and go to state 144 
     1884 
     1885 
     1886state 103 
     1887 
     1888   80 argument_list: argument_list ',' . expression 
     1889 
     1890    "new"       shift, and go to state 12 
     1891    "true"      shift, and go to state 15 
     1892    "false"     shift, and go to state 16 
     1893    "nil"       shift, and go to state 17 
     1894    CHAR        shift, and go to state 18 
     1895    STRING      shift, and go to state 19 
     1896    INTEGER     shift, and go to state 20 
     1897    DOUBLE      shift, and go to state 21 
     1898    IDENTIFIER  shift, and go to state 22 
     1899    '-'         shift, and go to state 23 
     1900    '['         shift, and go to state 24 
     1901    '('         shift, and go to state 25 
     1902 
     1903    object_creation  go to state 27 
     1904    dot_accessor     go to state 28 
     1905    member_accessor  go to state 29 
     1906    accessor         go to state 30 
     1907    symbol_accessor  go to state 31 
     1908    expression       go to state 145 
     1909    express          go to state 34 
     1910    arbitrary_call   go to state 45 
     1911    list_symbol      go to state 47 
     1912    primitive        go to state 48 
     1913 
     1914 
     1915state 104 
     1916 
     1917   13 symbol_accessor: IDENTIFIER '[' expression . ']' 
     1918 
     1919    ']'  shift, and go to state 146 
     1920 
     1921 
     1922state 105 
     1923 
     1924   72 arbitrary_call: IDENTIFIER '(' ')' . 
     1925 
     1926    $default  reduce using rule 72 (arbitrary_call) 
     1927 
     1928 
     1929state 106 
     1930 
     1931   73 arbitrary_call: IDENTIFIER '(' arguments . ')' 
     1932 
     1933    ')'  shift, and go to state 147 
     1934 
     1935 
     1936state 107 
     1937 
     1938   75 list_symbol: '[' arguments ']' . 
     1939 
     1940    $default  reduce using rule 75 (list_symbol) 
     1941 
     1942 
     1943state 108 
     1944 
     1945   39 express: '(' express ')' . 
     1946 
     1947    $default  reduce using rule 39 (express) 
     1948 
     1949 
     1950state 109 
     1951 
     1952    6 dot_accessor: dot_accessor '.' accessor . 
     1953 
     1954    $default  reduce using rule 6 (dot_accessor) 
     1955 
     1956 
     1957state 110 
     1958 
     1959    9 accessor: symbol_accessor . 
     1960 
     1961    $default  reduce using rule 9 (accessor) 
     1962 
     1963 
     1964state 111 
     1965 
     1966   19 express: express . '+' express 
     1967   20        | express . '-' express 
     1968   21        | express . '/' express 
     1969   22        | express . '*' express 
     1970   23        | express . '^' express 
     1971   24        | express . "<" express 
     1972   25        | express . ">" express 
     1973   26        | express . "<=" express 
     1974   27        | express . ">=" express 
     1975   28        | express . "==" express 
     1976   29        | express . "!=" express 
     1977   30        | express . "||" express 
     1978   31        | express . "&&" express 
     1979   35        | symbol_accessor "+=" express . 
     1980 
     1981    $default  reduce using rule 35 (express) 
     1982 
     1983 
     1984state 112 
     1985 
     1986   19 express: express . '+' express 
     1987   20        | express . '-' express 
     1988   21        | express . '/' express 
     1989   22        | express . '*' express 
     1990   23        | express . '^' express 
     1991   24        | express . "<" express 
     1992   25        | express . ">" express 
     1993   26        | express . "<=" express 
     1994   27        | express . ">=" express 
     1995   28        | express . "==" express 
     1996   29        | express . "!=" express 
     1997   30        | express . "||" express 
     1998   31        | express . "&&" express 
     1999   37        | symbol_accessor "*=" express . 
    7692000 
    7702001    $default  reduce using rule 37 (express) 
    7712002 
    7722003 
    773 state 43 
    774  
    775    11 function_definition: DEFUN IDENTIFIER . '{' procedure '}' 
    776    12                    | DEFUN IDENTIFIER . '(' ')' '{' procedure '}' 
    777    13                    | DEFUN IDENTIFIER . '(' parameters ')' '{' procedure '}' 
    778  
    779     '('  shift, and go to state 88 
    780     '{'  shift, and go to state 89 
    781  
    782  
    783 state 44 
    784  
    785    66 return_keyword: RETURN expression . 
    786  
    787     $default  reduce using rule 66 (return_keyword) 
    788  
    789  
    790 state 45 
    791  
    792    63 delete_keyword: DELETE IDENTIFIER . 
    793  
    794     $default  reduce using rule 63 (delete_keyword) 
    795  
    796  
    797 state 46 
    798  
    799    41 loop_while: WHILE '(' . expression ')' '{' procedure '}' 
    800  
    801     TRUE        shift, and go to state 13 
    802     FALSE       shift, and go to state 14 
    803     NIL         shift, and go to state 15 
    804     CHAR        shift, and go to state 16 
    805     STRING      shift, and go to state 17 
    806     INTEGER     shift, and go to state 18 
    807     DOUBLE      shift, and go to state 19 
    808     IDENTIFIER  shift, and go to state 20 
    809     '-'         shift, and go to state 21 
    810     '('         shift, and go to state 22 
    811     '['         shift, and go to state 23 
    812  
    813     member_accessor  go to state 24 
    814     symbol_accessor  go to state 25 
    815     expression       go to state 90 
    816     express          go to state 28 
    817     arbitrary_call   go to state 39 
    818     list_symbol      go to state 41 
    819     primitive        go to state 42 
    820  
    821  
    822 state 47 
    823  
    824    42 loop_for: FOR '(' . expression ';' expression ';' expression ')' '{' procedure '}' 
    825  
    826     TRUE        shift, and go to state 13 
    827     FALSE       shift, and go to state 14 
    828     NIL         shift, and go to state 15 
    829     CHAR        shift, and go to state 16 
    830     STRING      shift, and go to state 17 
    831     INTEGER     shift, and go to state 18 
    832     DOUBLE      shift, and go to state 19 
    833     IDENTIFIER  shift, and go to state 20 
    834     '-'         shift, and go to state 21 
    835     '('         shift, and go to state 22 
    836     '['         shift, and go to state 23 
    837  
    838     member_accessor  go to state 24 
    839     symbol_accessor  go to state 25 
    840     expression       go to state 91 
    841     express          go to state 28 
    842     arbitrary_call   go to state 39 
    843     list_symbol      go to state 41 
    844     primitive        go to state 42 
    845  
    846  
    847 state 48 
    848  
    849    46 struct_if: IF '(' . expression ')' '{' procedure '}' 
    850  
    851     TRUE        shift, and go to state 13 
    852     FALSE       shift, and go to state 14 
    853     NIL         shift, and go to state 15 
    854     CHAR        shift, and go to state 16 
    855     STRING      shift, and go to state 17 
    856     INTEGER     shift, and go to state 18 
    857     DOUBLE      shift, and go to state 19 
    858     IDENTIFIER  shift, and go to state 20 
    859     '-'         shift, and go to state 21 
    860     '('         shift, and go to state 22 
    861     '['         shift, and go to state 23 
    862  
    863     member_accessor  go to state 24 
    864     symbol_accessor  go to state 25 
    865     expression       go to state 92 
    866     express          go to state 28 
    867     arbitrary_call   go to state 39 
    868     list_symbol      go to state 41 
    869     primitive        go to state 42 
    870  
    871  
    872 state 49 
    873  
    874    76 argument_list: expression . 
    875  
    876     $default  reduce using rule 76 (argument_list) 
    877  
    878  
    879 state 50 
    880  
    881    69 print_keyword: PRINT arguments . 
    882  
    883     $default  reduce using rule 69 (print_keyword) 
    884  
    885  
    886 state 51 
    887  
    888    74 arguments: argument_list . 
    889    75 argument_list: argument_list . ',' expression 
    890  
    891     ','  shift, and go to state 93 
    892  
    893     $default  reduce using rule 74 (arguments) 
    894  
    895  
    896 state 52 
    897  
    898     5 member_accessor: IDENTIFIER '.' . IDENTIFIER 
    899     6                | IDENTIFIER '.' . IDENTIFIER '(' ')' 
    900     7                | IDENTIFIER '.' . IDENTIFIER '(' arguments ')' 
    901  
    902     IDENTIFIER  shift, and go to state 94 
    903  
    904  
    905 state 53 
    906  
    907    67 arbitrary_call: IDENTIFIER '(' . ')' 
    908    68               | IDENTIFIER '(' . arguments ')' 
    909  
    910     TRUE        shift, and go to state 13 
    911     FALSE       shift, and go to state 14 
    912     NIL         shift, and go to state 15 
    913     CHAR        shift, and go to state 16 
    914     STRING      shift, and go to state 17 
    915     INTEGER     shift, and go to state 18 
    916     DOUBLE      shift, and go to state 19 
    917     IDENTIFIER  shift, and go to state 20 
    918     '-'         shift, and go to state 21 
    919     '('         shift, and go to state 22 
    920     ')'         shift, and go to state 95 
    921     '['         shift, and go to state 23 
    922  
    923     member_accessor  go to state 24 
    924     symbol_accessor  go to state 25 
    925     expression       go to state 49 
    926     express          go to state 28 
    927     arbitrary_call   go to state 39 
    928     list_symbol      go to state 41 
    929     arguments        go to state 96 
    930     argument_list    go to state 51 
    931     primitive        go to state 42 
    932  
    933  
    934 state 54 
    935  
    936     9 symbol_accessor: IDENTIFIER '[' . expression ']' 
    937  
    938     TRUE        shift, and go to state 13 
    939     FALSE       shift, and go to state 14 
    940     NIL         shift, and go to state 15 
    941     CHAR        shift, and go to state 16 
    942     STRING      shift, and go to state 17 
    943     INTEGER     shift, and go to state 18 
    944     DOUBLE      shift, and go to state 19 
    945     IDENTIFIER  shift, and go to state 20 
    946     '-'         shift, and go to state 21 
    947     '('         shift, and go to state 22 
    948     '['         shift, and go to state 23 
    949  
    950     member_accessor  go to state 24 
    951     symbol_accessor  go to state 25 
    952     expression       go to state 97 
    953     express          go to state 28 
    954     arbitrary_call   go to state 39 
    955     list_symbol      go to state 41 
    956     primitive        go to state 42 
    957  
    958  
    959 state 55 
    960  
    961    16 express: express . '+' express 
    962    17        | express . '-' express 
    963    18        | express . '/' express 
    964    19        | express . '*' express 
    965    20        | express . '^' express 
    966    21        | express . LESS express 
    967    22        | express . GREATER express 
    968    23        | express . LESS_EQUAL express 
    969    24        | express . GREATER_EQUAL express 
    970    25        | express . EQUAL express 
    971    26        | express . NOT_EQUAL express 
    972    27        | express . OR express 
    973    28        | express . AND express 
    974    29        | '-' express . 
     2004state 113 
     2005 
     2006   19 express: express . '+' express 
     2007   20        | express . '-' express 
     2008   21        | express . '/' express 
     2009   22        | express . '*' express 
     2010   23        | express . '^' express 
     2011   24        | express . "<" express 
     2012   25        | express . ">" express 
     2013   26        | express . "<=" express 
     2014   27        | express . ">=" express 
     2015   28        | express . "==" express 
     2016   29        | express . "!=" express 
     2017   30        | express . "||" express 
     2018   31        | express . "&&" express 
     2019   36        | symbol_accessor "-=" express . 
     2020 
     2021    $default  reduce using rule 36 (express) 
     2022 
     2023 
     2024state 114 
     2025 
     2026   19 express: express . '+' express 
     2027   20        | express . '-' express 
     2028   21        | express . '/' express 
     2029   22        | express . '*' express 
     2030   23        | express . '^' express 
     2031   24        | express . "<" express 
     2032   25        | express . ">" express 
     2033   26        | express . "<=" express 
     2034   27        | express . ">=" express 
     2035   28        | express . "==" express 
     2036   29        | express . "!=" express 
     2037   30        | express . "||" express 
     2038   31        | express . "&&" express 
     2039   38        | symbol_accessor "/=" express . 
     2040 
     2041    $default  reduce using rule 38 (express) 
     2042 
     2043 
     2044state 115 
     2045 
     2046   18 express: symbol_accessor '=' express . 
     2047   19        | express . '+' express 
     2048   20        | express . '-' express 
     2049   21        | express . '/' express 
     2050   22        | express . '*' express 
     2051   23        | express . '^' express 
     2052   24        | express . "<" express 
     2053   25        | express . ">" express 
     2054   26        | express . "<=" express 
     2055   27        | express . ">=" express 
     2056   28        | express . "==" express 
     2057   29        | express . "!=" express 
     2058   30        | express . "||" express 
     2059   31        | express . "&&" express 
     2060 
     2061    '^'  shift, and go to state 87 
     2062 
     2063    $default  reduce using rule 18 (express) 
     2064 
     2065 
     2066state 116 
     2067 
     2068   19 express: express . '+' express 
     2069   20        | express . '-' express 
     2070   21        | express . '/' express 
     2071   22        | express . '*' express 
     2072   23        | express . '^' express 
     2073   24        | express . "<" express 
     2074   25        | express . ">" express 
     2075   26        | express . "<=" express 
     2076   27        | express . ">=" express 
     2077   28        | express . "==" express 
     2078   29        | express . "!=" express 
     2079   30        | express . "||" express 
     2080   30        | express "||" express . 
     2081   31        | express . "&&" express 
     2082 
     2083    '^'  shift, and go to state 87 
     2084 
     2085    $default  reduce using rule 30 (express) 
     2086 
     2087 
     2088state 117 
     2089 
     2090   19 express: express . '+' express 
     2091   20        | express . '-' express 
     2092   21        | express . '/' express 
     2093   22        | express . '*' express 
     2094   23        | express . '^' express 
     2095   24        | express . "<" express 
     2096   25        | express . ">" express 
     2097   26        | express . "<=" express 
     2098   27        | express . ">=" express 
     2099   28        | express . "==" express 
     2100   29        | express . "!=" express 
     2101   30        | express . "||" express 
     2102   31        | express . "&&" express 
     2103   31        | express "&&" express . 
     2104 
     2105    '^'  shift, and go to state 87 
     2106 
     2107    $default  reduce using rule 31 (express) 
     2108 
     2109 
     2110state 118 
     2111 
     2112   19 express: express . '+' express 
     2113   20        | express . '-' express 
     2114   21        | express . '/' express 
     2115   22        | express . '*' express 
     2116   23        | express . '^' express 
     2117   24        | express . "<" express 
     2118   25        | express . ">" express 
     2119   26        | express . "<=" express 
     2120   27        | express . ">=" express 
     2121   28        | express . "==" express 
     2122   28        | express "==" express . 
     2123   29        | express . "!=" express 
     2124   30        | express . "||" express 
     2125   31        | express . "&&" express 
     2126 
     2127    "||"  shift, and go to state 75 
     2128    "&&"  shift, and go to state 76 
     2129    '^'   shift, and go to state 87 
     2130 
     2131    $default  reduce using rule 28 (express) 
     2132 
     2133 
     2134state 119 
     2135 
     2136   19 express: express . '+' express 
     2137   20        | express . '-' express 
     2138   21        | express . '/' express 
     2139   22        | express . '*' express 
     2140   23        | express . '^' express 
     2141   24        | express . "<" express 
     2142   25        | express . ">" express 
     2143   26        | express . "<=" express 
     2144   27        | express . ">=" express 
     2145   28        | express . "==" express 
     2146   29        | express . "!=" express 
     2147   29        | express "!=" express . 
     2148   30        | express . "||" express 
     2149   31        | express . "&&" express 
     2150 
     2151    "||"  shift, and go to state 75 
     2152    "&&"  shift, and go to state 76 
     2153    '^'   shift, and go to state 87 
    9752154 
    9762155    $default  reduce using rule 29 (express) 
    9772156 
    9782157 
    979 state 56 
    980  
    981    16 express: express . '+' express 
    982    17        | express . '-' express 
    983    18        | express . '/' express 
    984    19        | express . '*' express 
    985    20        | express . '^' express 
    986    21        | express . LESS express 
    987    22        | express . GREATER express 
    988    23        | express . LESS_EQUAL express 
    989    24        | express . GREATER_EQUAL express 
    990    25        | express . EQUAL express 
    991    26        | express . NOT_EQUAL express 
    992    27        | express . OR express 
    993    28        | express . AND express 
    994    36        | '(' express . ')' 
    995  
    996     OR             shift, and go to state 66 
    997     AND            shift, and go to state 67 
    998     EQUAL          shift, and go to state 68 
    999     NOT_EQUAL      shift, and go to state 69 
    1000     LESS           shift, and go to state 70 
    1001     LESS_EQUAL     shift, and go to state 71 
    1002     GREATER        shift, and go to state 72 
    1003     GREATER_EQUAL  shift, and go to state 73 
    1004     '-'            shift, and go to state 74 
    1005     '+'            shift, and go to state 75 
    1006     '*'            shift, and go to state 76 
    1007     '/'            shift, and go to state 77 
    1008     '^'            shift, and go to state 78 
    1009     ')'            shift, and go to state 98 
    1010  
    1011  
    1012 state 57 
    1013  
    1014    70 list_symbol: '[' arguments . ']' 
    1015  
    1016     ']'  shift, and go to state 99 
    1017  
    1018  
    1019 state 58 
    1020  
    1021    32 express: symbol_accessor PLUS_EQUAL . express 
    1022  
    1023     TRUE        shift, and go to state 13 
    1024     FALSE       shift, and go to state 14 
    1025     NIL         shift, and go to state 15 
    1026     CHAR        shift, and go to state 16 
    1027     STRING      shift, and go to state 17 
    1028     INTEGER     shift, and go to state 18 
    1029     DOUBLE      shift, and go to state 19 
    1030     IDENTIFIER  shift, and go to state 20 
    1031     '-'         shift, and go to state 21 
    1032     '('         shift, and go to state 22 
    1033     '['         shift, and go to state 23 
    1034  
    1035     member_accessor  go to state 24 
    1036     symbol_accessor  go to state 25 
    1037     express          go to state 100 
    1038     arbitrary_call   go to state 39 
    1039     list_symbol      go to state 41 
    1040     primitive        go to state 42 
    1041  
    1042  
    1043 state 59 
    1044  
    1045    34 express: symbol_accessor MULTIPLY_EQUAL . express 
    1046  
    1047     TRUE        shift, and go to state 13 
    1048     FALSE       shift, and go to state 14 
    1049     NIL         shift, and go to state 15 
    1050     CHAR        shift, and go to state 16 
    1051     STRING      shift, and go to state 17 
    1052     INTEGER     shift, and go to state 18 
    1053     DOUBLE      shift, and go to state 19 
    1054     IDENTIFIER  shift, and go to state 20 
    1055     '-'         shift, and go to state 21 
    1056     '('         shift, and go to state 22 
    1057     '['         shift, and go to state 23 
    1058  
    1059     member_accessor  go to state 24 
    1060     symbol_accessor  go to state 25 
    1061     express          go to state 101 
    1062     arbitrary_call   go to state 39 
    1063     list_symbol      go to state 41 
    1064     primitive        go to state 42 
    1065  
    1066  
    1067 state 60 
    1068  
    1069    33 express: symbol_accessor MINUS_EQUAL . express 
    1070  
    1071     TRUE        shift, and go to state 13 
    1072     FALSE       shift, and go to state 14 
    1073     NIL         shift, and go to state 15 
    1074     CHAR        shift, and go to state 16 
    1075     STRING      shift, and go to state 17 
    1076     INTEGER     shift, and go to state 18 
    1077     DOUBLE      shift, and go to state 19 
    1078     IDENTIFIER  shift, and go to state 20 
    1079     '-'         shift, and go to state 21 
    1080     '('         shift, and go to state 22 
    1081     '['         shift, and go to state 23 
    1082  
    1083     member_accessor  go to state 24 
    1084     symbol_accessor  go to state 25 
    1085     express          go to state 102 
    1086     arbitrary_call   go to state 39 
    1087     list_symbol      go to state 41 
    1088     primitive        go to state 42 
    1089  
    1090  
    1091 state 61 
    1092  
    1093    35 express: symbol_accessor DIVIDE_EQUAL . express 
    1094  
    1095     TRUE        shift, and go to state 13 
    1096     FALSE       shift, and go to state 14 
    1097     NIL         shift, and go to state 15 
    1098     CHAR        shift, and go to state 16 
    1099     STRING      shift, and go to state 17 
    1100     INTEGER     shift, and go to state 18 
    1101     DOUBLE      shift, and go to state 19 
    1102     IDENTIFIER  shift, and go to state 20 
    1103     '-'         shift, and go to state 21 
    1104     '('         shift, and go to state 22 
    1105     '['         shift, and go to state 23 
    1106  
    1107     member_accessor  go to state 24 
    1108     symbol_accessor  go to state 25 
    1109     express          go to state 103 
    1110     arbitrary_call   go to state 39 
    1111     list_symbol      go to state 41 
    1112     primitive        go to state 42 
    1113  
    1114  
    1115 state 62 
    1116  
    1117    30 express: symbol_accessor PLUSPLUS . 
    1118  
    1119     $default  reduce using rule 30 (express) 
    1120  
    1121  
    1122 state 63 
    1123  
    1124    31 express: symbol_accessor MINMIN . 
    1125  
    1126     $default  reduce using rule 31 (express) 
    1127  
    1128  
    1129 state 64 
    1130  
    1131    15 express: symbol_accessor '=' . express 
    1132  
    1133     TRUE        shift, and go to state 13 
    1134     FALSE       shift, and go to state 14 
    1135     NIL         shift, and go to state 15 
    1136     CHAR        shift, and go to state 16 
    1137     STRING      shift, and go to state 17 
    1138     INTEGER     shift, and go to state 18 
    1139     DOUBLE      shift, and go to state 19 
    1140     IDENTIFIER  shift, and go to state 20 
    1141     '-'         shift, and go to state 21 
    1142     '('         shift, and go to state 22 
    1143     '['         shift, and go to state 23 
    1144  
    1145     member_accessor  go to state 24 
    1146     symbol_accessor  go to state 25 
    1147     express          go to state 104 
    1148     arbitrary_call   go to state 39 
    1149     list_symbol      go to state 41 
    1150     primitive        go to state 42 
    1151  
    1152  
    1153 state 65 
    1154  
    1155    56 statement: expression ';' . 
    1156  
    1157     $default  reduce using rule 56 (statement) 
    1158  
    1159  
    1160 state 66 
    1161  
    1162    27 express: express OR . express 
    1163  
    1164     TRUE        shift, and go to state 13 
    1165     FALSE       shift, and go to state 14 
    1166     NIL         shift, and go to state 15 
    1167     CHAR        shift, and go to state 16 
    1168     STRING      shift, and go to state 17 
    1169     INTEGER     shift, and go to state 18 
    1170     DOUBLE      shift, and go to state 19 
    1171     IDENTIFIER  shift, and go to state 20 
    1172     '-'         shift, and go to state 21 
    1173     '('         shift, and go to state 22 
    1174     '['         shift, and go to state 23 
    1175  
    1176     member_accessor  go to state 24 
    1177     symbol_accessor  go to state 25 
    1178     express          go to state 105 
    1179     arbitrary_call   go to state 39 
    1180     list_symbol      go to state 41 
    1181     primitive        go to state 42 
    1182  
    1183  
    1184 state 67 
    1185  
    1186    28 express: express AND . express 
    1187  
    1188     TRUE        shift, and go to state 13 
    1189     FALSE       shift, and go to state 14 
    1190     NIL         shift, and go to state 15 
    1191     CHAR        shift, and go to state 16 
    1192     STRING      shift, and go to state 17 
    1193     INTEGER     shift, and go to state 18 
    1194     DOUBLE      shift, and go to state 19 
    1195     IDENTIFIER  shift, and go to state 20 
    1196     '-'         shift, and go to state 21 
    1197     '('         shift, and go to state 22 
    1198     '['         shift, and go to state 23 
    1199  
    1200     member_accessor  go to state 24 
    1201     symbol_accessor  go to state 25 
    1202     express          go to state 106 
    1203     arbitrary_call   go to state 39 
    1204     list_symbol      go to state 41 
    1205     primitive        go to state 42 
    1206  
    1207  
    1208 state 68 
    1209  
    1210    25 express: express EQUAL . express 
    1211  
    1212     TRUE        shift, and go to state 13 
    1213     FALSE       shift, and go to state 14 
    1214     NIL         shift, and go to state 15 
    1215     CHAR        shift, and go to state 16 
    1216     STRING      shift, and go to state 17 
    1217     INTEGER     shift, and go to state 18 
    1218     DOUBLE      shift, and go to state 19 
    1219     IDENTIFIER  shift, and go to state 20 
    1220     '-'         shift, and go to state 21 
    1221     '('         shift, and go to state 22 
    1222     '['         shift, and go to state 23 
    1223  
    1224     member_accessor  go to state 24 
    1225     symbol_accessor  go to state 25 
    1226     express          go to state 107 
    1227     arbitrary_call   go to state 39 
    1228     list_symbol      go to state 41 
    1229     primitive        go to state 42 
    1230  
    1231  
    1232 state 69 
    1233  
    1234    26 express: express NOT_EQUAL . express 
    1235  
    1236     TRUE        shift, and go to state 13 
    1237     FALSE       shift, and go to state 14 
    1238     NIL         shift, and go to state 15 
    1239     CHAR        shift, and go to state 16 
    1240     STRING      shift, and go to state 17 
    1241     INTEGER     shift, and go to state 18 
    1242     DOUBLE      shift, and go to state 19 
    1243     IDENTIFIER  shift, and go to state 20 
    1244     '-'         shift, and go to state 21 
    1245     '('         shift, and go to state 22 
    1246     '['         shift, and go to state 23 
    1247  
    1248     member_accessor  go to state 24 
    1249     symbol_accessor  go to state 25 
    1250     express          go to state 108 
    1251     arbitrary_call   go to state 39 
    1252     list_symbol      go to state 41 
    1253     primitive        go to state 42 
    1254  
    1255  
    1256 state 70 
    1257  
    1258    21 express: express LESS . express 
    1259  
    1260     TRUE        shift, and go to state 13 
    1261     FALSE       shift, and go to state 14 
    1262     NIL         shift, and go to state 15 
    1263     CHAR        shift, and go to state 16 
    1264     STRING      shift, and go to state 17 
    1265     INTEGER     shift, and go to state 18 
    1266     DOUBLE      shift, and go to state 19 
    1267     IDENTIFIER  shift, and go to state 20 
    1268     '-'         shift, and go to state 21 
    1269     '('         shift, and go to state 22 
    1270     '['         shift, and go to state 23 
    1271  
    1272     member_accessor  go to state 24 
    1273     symbol_accessor  go to state 25 
    1274     express          go to state 109 
    1275     arbitrary_call   go to state 39 
    1276     list_symbol      go to state 41 
    1277     primitive        go to state 42 
    1278  
    1279  
    1280 state 71 
    1281  
    1282    23 express: express LESS_EQUAL . express 
    1283  
    1284     TRUE        shift, and go to state 13 
    1285     FALSE       shift, and go to state 14 
    1286     NIL         shift, and go to state 15 
    1287     CHAR        shift, and go to state 16 
    1288     STRING      shift, and go to state 17 
    1289     INTEGER     shift, and go to state 18 
    1290     DOUBLE      shift, and go to state 19 
    1291     IDENTIFIER  shift, and go to state 20 
    1292     '-'         shift, and go to state 21 
    1293     '('         shift, and go to state 22 
    1294     '['         shift, and go to state 23 
    1295  
    1296     member_accessor  go to state 24 
    1297     symbol_accessor  go to state 25 
    1298     express          go to state 110 
    1299     arbitrary_call   go to state 39 
    1300     list_symbol      go to state 41 
    1301     primitive        go to state 42 
    1302  
    1303  
    1304 state 72 
    1305  
    1306    22 express: express GREATER . express 
    1307  
    1308     TRUE        shift, and go to state 13 
    1309     FALSE       shift, and go to state 14 
    1310     NIL         shift, and go to state 15 
    1311     CHAR        shift, and go to state 16 
    1312     STRING      shift, and go to state 17 
    1313     INTEGER     shift, and go to state 18 
    1314     DOUBLE      shift, and go to state 19 
    1315     IDENTIFIER  shift, and go to state 20 
    1316     '-'         shift, and go to state 21 
    1317     '('         shift, and go to state 22 
    1318     '['         shift, and go to state 23 
    1319  
    1320     member_accessor  go to state 24 
    1321     symbol_accessor  go to state 25 
    1322     express          go to state 111 
    1323     arbitrary_call   go to state 39 
    1324     list_symbol      go to state 41 
    1325     primitive        go to state 42 
    1326  
    1327  
    1328 state 73 
    1329  
    1330    24 express: express GREATER_EQUAL . express 
    1331  
    1332     TRUE        shift, and go to state 13 
    1333     FALSE       shift, and go to state 14 
    1334     NIL         shift, and go to state 15 
    1335     CHAR        shift, and go to state 16 
    1336     STRING      shift, and go to state 17 
    1337     INTEGER     shift, and go to state 18 
    1338     DOUBLE      shift, and go to state 19 
    1339     IDENTIFIER  shift, and go to state 20 
    1340     '-'         shift, and go to state 21 
    1341     '('         shift, and go to state 22 
    1342     '['         shift, and go to state 23 
    1343  
    1344     member_accessor  go to state 24 
    1345     symbol_accessor  go to state 25 
    1346     express          go to state 112 
    1347     arbitrary_call   go to state 39 
    1348     list_symbol      go to state 41 
    1349     primitive        go to state 42 
    1350  
    1351  
    1352 state 74 
    1353  
    1354    17 express: express '-' . express 
    1355  
    1356     TRUE        shift, and go to state 13 
    1357     FALSE       shift, and go to state 14 
    1358     NIL         shift, and go to state 15 
    1359     CHAR        shift, and go to state 16 
    1360     STRING      shift, and go to state 17 
    1361     INTEGER     shift, and go to state 18 
    1362     DOUBLE      shift, and go to state 19 
    1363     IDENTIFIER  shift, and go to state 20 
    1364     '-'         shift, and go to state 21 
    1365     '('         shift, and go to state 22 
    1366     '['         shift, and go to state 23 
    1367  
    1368     member_accessor  go to state 24 
    1369     symbol_accessor  go to state 25 
    1370     express          go to state 113 
    1371     arbitrary_call   go to state 39 
    1372     list_symbol      go to state 41 
    1373     primitive        go to state 42 
    1374  
    1375  
    1376 state 75 
    1377  
    1378    16 express: express '+' . express 
    1379  
    1380     TRUE        shift, and go to state 13 
    1381     FALSE       shift, and go to state 14 
    1382     NIL         shift, and go to state 15 
    1383     CHAR        shift, and go to state 16 
    1384     STRING      shift, and go to state 17 
    1385     INTEGER     shift, and go to state 18 
    1386     DOUBLE      shift, and go to state 19 
    1387     IDENTIFIER  shift, and go to state 20 
    1388     '-'         shift, and go to state 21 
    1389     '('         shift, and go to state 22 
    1390     '['         shift, and go to state 23 
    1391  
    1392     member_accessor  go to state 24 
    1393     symbol_accessor  go to state 25 
    1394     express          go to state 114 
    1395     arbitrary_call   go to state 39 
    1396     list_symbol      go to state 41 
    1397     primitive        go to state 42 
    1398  
    1399  
    1400 state 76 
    1401  
    1402    19 express: express '*' . express 
    1403  
    1404     TRUE        shift, and go to state 13 
    1405     FALSE       shift, and go to state 14 
    1406     NIL         shift, and go to state 15 
    1407     CHAR        shift, and go to state 16 
    1408     STRING      shift, and go to state 17 
    1409     INTEGER     shift, and go to state 18 
    1410     DOUBLE      shift, and go to state 19 
    1411     IDENTIFIER  shift, and go to state 20 
    1412     '-'         shift, and go to state 21 
    1413     '('         shift, and go to state 22 
    1414     '['         shift, and go to state 23 
    1415  
    1416     member_accessor  go to state 24 
    1417     symbol_accessor  go to state 25 
    1418     express          go to state 115 
    1419     arbitrary_call   go to state 39 
    1420     list_symbol      go to state 41 
    1421     primitive        go to state 42 
    1422  
    1423  
    1424 state 77 
    1425  
    1426    18 express: express '/' . express 
    1427  
    1428     TRUE        shift, and go to state 13 
    1429     FALSE       shift, and go to state 14 
    1430     NIL         shift, and go to state 15 
    1431     CHAR        shift, and go to state 16 
    1432     STRING      shift, and go to state 17 
    1433     INTEGER     shift, and go to state 18 
    1434     DOUBLE      shift, and go to state 19 
    1435     IDENTIFIER  shift, and go to state 20 
    1436     '-'         shift, and go to state 21 
    1437     '('         shift, and go to state 22 
    1438     '['         shift, and go to state 23 
    1439  
    1440     member_accessor  go to state 24 
    1441     symbol_accessor  go to state 25 
    1442     express          go to state 116 
    1443     arbitrary_call   go to state 39 
    1444     list_symbol      go to state 41 
    1445     primitive        go to state 42 
    1446  
    1447  
    1448 state 78 
    1449  
    1450    20 express: express '^' . express 
    1451  
    1452     TRUE        shift, and go to state 13 
    1453     FALSE       shift, and go to state 14 
    1454     NIL         shift, and go to state 15 
    1455     CHAR        shift, and go to state 16 
    1456     STRING      shift, and go to state 17 
    1457     INTEGER     shift, and go to state 18 
    1458     DOUBLE      shift, and go to state 19 
    1459     IDENTIFIER  shift, and go to state 20 
    1460     '-'         shift, and go to state 21 
    1461     '('         shift, and go to state 22 
    1462     '['         shift, and go to state 23 
    1463  
    1464     member_accessor  go to state 24 
    1465     symbol_accessor  go to state 25 
    1466     express          go to state 117 
    1467     arbitrary_call   go to state 39 
    1468     list_symbol      go to state 41 
    1469     primitive        go to state 42 
    1470  
    1471  
    1472 state 79 
    1473  
    1474    47 struct_elif: ELIF . '(' expression ')' '{' procedure '}' 
    1475  
    1476     '('  shift, and go to state 118 
    1477  
    1478  
    1479 state 80 
    1480  
    1481    50 struct_elif_block: struct_elif . 
    1482  
    1483     $default  reduce using rule 50 (struct_elif_block) 
    1484  
    1485  
    1486 state 81 
    1487  
    1488    49 struct_elif_block: struct_elif_block . struct_elif 
    1489    52 elif_block: struct_elif_block . 
    1490  
    1491     ELIF  shift, and go to state 79 
    1492  
    1493     $default  reduce using rule 52 (elif_block) 
    1494  
    1495     struct_elif  go to state 119 
    1496  
    1497  
    1498 state 82 
    1499  
    1500    55 conditionals: struct_if elif_block . else_block 
    1501  
    1502     ELSE  shift, and go to state 120 
    1503  
    1504     $default  reduce using rule 53 (else_block) 
    1505  
    1506     struct_else  go to state 121 
    1507     else_block   go to state 122 
    1508  
    1509  
    1510 state 83 
    1511  
    1512    61 statement: delete_keyword ';' . 
    1513  
    1514     $default  reduce using rule 61 (statement) 
    1515  
    1516  
    1517 state 84 
    1518  
    1519    60 statement: continue_keyword ';' . 
    1520  
    1521     $default  reduce using rule 60 (statement) 
    1522  
    1523  
    1524 state 85 
    1525  
    1526    58 statement: break_keyword ';' . 
    1527  
    1528     $default  reduce using rule 58 (statement) 
    1529  
    1530  
    1531 state 86 
    1532  
    1533    59 statement: return_keyword ';' . 
    1534  
    1535     $default  reduce using rule 59 (statement) 
    1536  
    1537  
    1538 state 87 
    1539  
    1540    57 statement: print_keyword ';' . 
    1541  
    1542     $default  reduce using rule 57 (statement) 
    1543  
    1544  
    1545 state 88 
    1546  
    1547    12 function_definition: DEFUN IDENTIFIER '(' . ')' '{' procedure '}' 
    1548    13                    | DEFUN IDENTIFIER '(' . parameters ')' '{' procedure '}' 
    1549  
    1550     IDENTIFIER  shift, and go to state 123 
    1551     ')'         shift, and go to state 124 
    1552  
    1553     parameters_expression  go to state 125 
    1554     parameters             go to state 126 
    1555  
    1556  
    1557 state 89 
    1558  
    1559    11 function_definition: DEFUN IDENTIFIER '{' . procedure '}' 
    1560  
    1561     BREAK       shift, and go to state 5 
    1562     CONTINUE    shift, and go to state 6 
    1563     RETURN      shift, and go to state 7 
    1564     DELETE      shift, and go to state 8 
    1565     WHILE       shift, and go to state 9 
    1566     FOR         shift, and go to state 10 
    1567     IF          shift, and go to state 11 
    1568     PRINT       shift, and go to state 12 
    1569     TRUE        shift, and go to state 13 
    1570     FALSE       shift, and go to state 14 
    1571     NIL         shift, and go to state 15 
    1572     CHAR        shift, and go to state 16 
    1573     STRING      shift, and go to state 17 
    1574     INTEGER     shift, and go to state 18 
    1575     DOUBLE      shift, and go to state 19 
    1576     IDENTIFIER  shift, and go to state 20 
    1577     '-'         shift, and go to state 21 
    1578     '('         shift, and go to state 22 
    1579     '['         shift, and go to state 23 
    1580  
    1581     member_accessor    go to state 24 
    1582     symbol_accessor    go to state 25 
    1583     expression         go to state 27 
    1584     express            go to state 28 
    1585     procedure          go to state 127 
    1586     pblock             go to state 128 
    1587     loop_while         go to state 29 
    1588     loop_for           go to state 30 
    1589     control_structure  go to state 31 
    1590     struct_if          go to state 32 
    1591     conditionals       go to state 33 
    1592     statement          go to state 129 
    1593     delete_keyword     go to state 35 
    1594     continue_keyword   go to state 36 
    1595     break_keyword      go to state 37 
    1596     return_keyword     go to state 38 
    1597     arbitrary_call     go to state 39 
    1598     print_keyword      go to state 40 
    1599     list_symbol        go to state 41 
    1600     primitive          go to state 42 
    1601  
    1602  
    1603 state 90 
    1604  
    1605    41 loop_while: WHILE '(' expression . ')' '{' procedure '}' 
    1606  
    1607     ')'  shift, and go to state 130 
    1608  
    1609  
    1610 state 91 
    1611  
    1612    42 loop_for: FOR '(' expression . ';' expression ';' expression ')' '{' procedure '}' 
    1613  
    1614     ';'  shift, and go to state 131 
    1615  
    1616  
    1617 state 92 
    1618  
    1619    46 struct_if: IF '(' expression . ')' '{' procedure '}' 
    1620  
    1621     ')'  shift, and go to state 132 
    1622  
    1623  
    1624 state 93 
    1625  
    1626    75 argument_list: argument_list ',' . expression 
    1627  
    1628     TRUE        shift, and go to state 13 
    1629     FALSE       shift, and go to state 14 
    1630     NIL         shift, and go to state 15 
    1631     CHAR        shift, and go to state 16 
    1632     STRING      shift, and go to state 17 
    1633     INTEGER     shift, and go to state 18 
    1634     DOUBLE      shift, and go to state 19 
    1635     IDENTIFIER  shift, and go to state 20 
    1636     '-'         shift, and go to state 21 
    1637     '('         shift, and go to state 22 
    1638     '['         shift, and go to state 23 
    1639  
    1640     member_accessor  go to state 24 
    1641     symbol_accessor  go to state 25 
    1642     expression       go to state 133 
    1643     express          go to state 28 
    1644     arbitrary_call   go to state 39 
    1645     list_symbol      go to state 41 
    1646     primitive        go to state 42 
    1647  
    1648  
    1649 state 94 
    1650  
    1651     5 member_accessor: IDENTIFIER '.' IDENTIFIER . 
    1652     6                | IDENTIFIER '.' IDENTIFIER . '(' ')' 
    1653     7                | IDENTIFIER '.' IDENTIFIER . '(' arguments ')' 
    1654  
    1655     '('  shift, and go to state 134 
    1656  
    1657     $default  reduce using rule 5 (member_accessor) 
    1658  
    1659  
    1660 state 95 
    1661  
    1662    67 arbitrary_call: IDENTIFIER '(' ')' . 
    1663  
    1664     $default  reduce using rule 67 (arbitrary_call) 
    1665  
    1666  
    1667 state 96 
    1668  
    1669    68 arbitrary_call: IDENTIFIER '(' arguments . ')' 
    1670  
    1671     ')'  shift, and go to state 135 
    1672  
    1673  
    1674 state 97 
    1675  
    1676     9 symbol_accessor: IDENTIFIER '[' expression . ']' 
    1677  
    1678     ']'  shift, and go to state 136 
    1679  
    1680  
    1681 state 98 
    1682  
    1683    36 express: '(' express ')' . 
    1684  
    1685     $default  reduce using rule 36 (express) 
    1686  
    1687  
    1688 state 99 
    1689  
    1690    70 list_symbol: '[' arguments ']' . 
    1691  
    1692     $default  reduce using rule 70 (list_symbol) 
    1693  
    1694  
    1695 state 100 
    1696  
    1697    16 express: express . '+' express 
    1698    17        | express . '-' express 
    1699    18        | express . '/' express 
    1700    19        | express . '*' express 
    1701    20        | express . '^' express 
    1702    21        | express . LESS express 
    1703    22        | express . GREATER express 
    1704    23        | express . LESS_EQUAL express 
    1705    24        | express . GREATER_EQUAL express 
    1706    25        | express . EQUAL express 
    1707    26        | express . NOT_EQUAL express 
    1708    27        | express . OR express 
    1709    28        | express . AND express 
    1710    32        | symbol_accessor PLUS_EQUAL express . 
    1711  
    1712     $default  reduce using rule 32 (express) 
    1713  
    1714  
    1715 state 101 
    1716  
    1717    16 express: express . '+' express 
    1718    17        | express . '-' express 
    1719    18        | express . '/' express 
    1720    19        | express . '*' express 
    1721    20        | express . '^' express 
    1722    21        | express . LESS express 
    1723    22        | express . GREATER express 
    1724    23        | express . LESS_EQUAL express 
    1725    24        | express . GREATER_EQUAL express 
    1726    25        | express . EQUAL express 
    1727    26        | express . NOT_EQUAL express 
    1728    27        | express . OR express 
    1729    28        | express . AND express 
    1730    34        | symbol_accessor MULTIPLY_EQUAL express . 
    1731  
    1732     $default  reduce using rule 34 (express) 
    1733  
    1734  
    1735 state 102 
    1736  
    1737    16 express: express . '+' express 
    1738    17        | express . '-' express 
    1739    18        | express . '/' express 
    1740    19        | express . '*' express 
    1741    20        | express . '^' express 
    1742    21        | express . LESS express 
    1743    22        | express . GREATER express 
    1744    23        | express . LESS_EQUAL express 
    1745    24        | express . GREATER_EQUAL express 
    1746    25        | express . EQUAL express 
    1747    26        | express . NOT_EQUAL express 
    1748    27        | express . OR express 
    1749    28        | express . AND express 
    1750    33        | symbol_accessor MINUS_EQUAL express . 
    1751  
    1752     $default  reduce using rule 33 (express) 
    1753  
    1754  
    1755 state 103 
    1756  
    1757    16 express: express . '+' express 
    1758    17        | express . '-' express 
    1759    18        | express . '/' express 
    1760    19        | express . '*' express 
    1761    20        | express . '^' express 
    1762    21        | express . LESS express 
    1763    22        | express . GREATER express 
    1764    23        | express . LESS_EQUAL express 
    1765    24        | express . GREATER_EQUAL express 
    1766    25        | express . EQUAL express 
    1767    26        | express . NOT_EQUAL express 
    1768    27        | express . OR express 
    1769    28        | express . AND express 
    1770    35        | symbol_accessor DIVIDE_EQUAL express . 
    1771  
    1772     $default  reduce using rule 35 (express) 
    1773  
    1774  
    1775 state 104 
    1776  
    1777    15 express: symbol_accessor '=' express . 
    1778    16        | express . '+' express 
    1779    17        | express . '-' express 
    1780    18        | express . '/' express 
    1781    19        | express . '*' express 
    1782    20        | express . '^' express 
    1783    21        | express . LESS express 
    1784    22        | express . GREATER express 
    1785    23        | express . LESS_EQUAL express 
    1786    24        | express . GREATER_EQUAL express 
    1787    25        | express . EQUAL express 
    1788    26        | express . NOT_EQUAL express 
    1789    27        | express . OR express 
    1790    28        | express . AND express 
    1791  
    1792     '^'  shift, and go to state 78 
    1793  
    1794     $default  reduce using rule 15 (express) 
    1795  
    1796  
    1797 state 105 
    1798  
    1799    16 express: express . '+' express 
    1800    17        | express . '-' express 
    1801    18        | express . '/' express 
    1802    19        | express . '*' express 
    1803    20        | express . '^' express 
    1804    21        | express . LESS express 
    1805    22        | express . GREATER express 
    1806    23        | express . LESS_EQUAL express 
    1807    24        | express . GREATER_EQUAL express 
    1808    25        | express . EQUAL express 
    1809    26        | express . NOT_EQUAL express 
    1810    27        | express . OR express 
    1811    27        | express OR express . 
    1812    28        | express . AND express 
    1813  
    1814     '^'  shift, and go to state 78 
     2158state 120 
     2159 
     2160   19 express: express . '+' express 
     2161   20        | express . '-' express 
     2162   21        | express . '/' express 
     2163   22        | express . '*' express 
     2164   23        | express . '^' express 
     2165   24        | express . "<" express 
     2166   24        | express "<" express . 
     2167   25        | express . ">" express 
     2168   26        | express . "<=" express 
     2169   27        | express . ">=" express 
     2170   28        | express . "==" express 
     2171   29        | express . "!=" express 
     2172   30        | express . "||" express 
     2173   31        | express . "&&" express 
     2174 
     2175    "||"  shift, and go to state 75 
     2176    "&&"  shift, and go to state 76 
     2177    "=="  shift, and go to state 77 
     2178    "!="  shift, and go to state 78 
     2179    ">"   shift, and go to state 81 
     2180    ">="  shift, and go to state 82 
     2181    '^'   shift, and go to state 87 
     2182 
     2183    $default  reduce using rule 24 (express) 
     2184 
     2185 
     2186state 121 
     2187 
     2188   19 express: express . '+' express 
     2189   20        | express . '-' express 
     2190   21        | express . '/' express 
     2191   22        | express . '*' express 
     2192   23        | express . '^' express 
     2193   24        | express . "<" express 
     2194   25        | express . ">" express 
     2195   26        | express . "<=" express 
     2196   26        | express "<=" express . 
     2197   27        | express . ">=" express 
     2198   28        | express . "==" express 
     2199   29        | express . "!=" express 
     2200   30        | express . "||" express 
     2201   31        | express . "&&" express 
     2202 
     2203    "||"  shift, and go to state 75 
     2204    "&&"  shift, and go to state 76 
     2205    "=="  shift, and go to state 77 
     2206    "!="  shift, and go to state 78 
     2207    ">"   shift, and go to state 81 
     2208    ">="  shift, and go to state 82 
     2209    '^'   shift, and go to state 87 
     2210 
     2211    $default  reduce using rule 26 (express) 
     2212 
     2213 
     2214state 122 
     2215 
     2216   19 express: express . '+' express 
     2217   20        | express . '-' express 
     2218   21        | express . '/' express 
     2219   22        | express . '*' express 
     2220   23        | express . '^' express 
     2221   24        | express . "<" express 
     2222   25        | express . ">" express 
     2223   25        | express ">" express . 
     2224   26        | express . "<=" express 
     2225   27        | express . ">=" express 
     2226   28        | express . "==" express 
     2227   29        | express . "!=" express 
     2228   30        | express . "||" express 
     2229   31        | express . "&&" express 
     2230 
     2231    "||"  shift, and go to state 75 
     2232    "&&"  shift, and go to state 76 
     2233    "=="  shift, and go to state 77 
     2234    "!="  shift, and go to state 78 
     2235    '^'   shift, and go to state 87 
     2236 
     2237    $default  reduce using rule 25 (express) 
     2238 
     2239 
     2240state 123 
     2241 
     2242   19 express: express . '+' express 
     2243   20        | express . '-' express 
     2244   21        | express . '/' express 
     2245   22        | express . '*' express 
     2246   23        | express . '^' express 
     2247   24        | express . "<" express 
     2248   25        | express . ">" express 
     2249   26        | express . "<=" express 
     2250   27        | express . ">=" express 
     2251   27        | express ">=" express . 
     2252   28        | express . "==" express 
     2253   29        | express . "!=" express 
     2254   30        | express . "||" express 
     2255   31        | express . "&&" express 
     2256 
     2257    "||"  shift, and go to state 75 
     2258    "&&"  shift, and go to state 76 
     2259    "=="  shift, and go to state 77 
     2260    "!="  shift, and go to state 78 
     2261    '^'   shift, and go to state 87 
    18152262 
    18162263    $default  reduce using rule 27 (express) 
    18172264 
    18182265 
    1819 state 106 
    1820  
    1821    16 express: express . '+' express 
    1822    17        | express . '-' express 
    1823    18        | express . '/' express 
    1824    19        | express . '*' express 
    1825    20        | express . '^' express 
    1826    21        | express . LESS express 
    1827    22        | express . GREATER express 
    1828    23        | express . LESS_EQUAL express 
    1829    24        | express . GREATER_EQUAL express 
    1830    25        | express . EQUAL express 
    1831    26        | express . NOT_EQUAL express 
    1832    27        | express . OR express 
    1833    28        | express . AND express 
    1834    28        | express AND express . 
    1835  
    1836     '^'  shift, and go to state 78 
    1837  
    1838     $default  reduce using rule 28 (express) 
    1839  
    1840  
    1841 state 107 
    1842  
    1843    16 express: express . '+' express 
    1844    17        | express . '-' express 
    1845    18        | express . '/' express 
    1846    19        | express . '*' express 
    1847    20        | express . '^' express 
    1848    21        | express . LESS express 
    1849    22        | express . GREATER express 
    1850    23        | express . LESS_EQUAL express 
    1851    24        | express . GREATER_EQUAL express 
    1852    25        | express . EQUAL express 
    1853    25        | express EQUAL express . 
    1854    26        | express . NOT_EQUAL express 
    1855    27        | express . OR express 
    1856    28        | express . AND express 
    1857  
    1858     OR   shift, and go to state 66 
    1859     AND  shift, and go to state 67 
    1860     '^'  shift, and go to state 78 
    1861  
    1862     $default  reduce using rule 25 (express) 
    1863  
    1864  
    1865 state 108 
    1866  
    1867    16 express: express . '+' express 
    1868    17        | express . '-' express 
    1869    18        | express . '/' express 
    1870    19        | express . '*' express 
    1871    20        | express . '^' express 
    1872    21        | express . LESS express 
    1873    22        | express . GREATER express 
    1874    23        | express . LESS_EQUAL express 
    1875    24        | express . GREATER_EQUAL express 
    1876    25        | express . EQUAL express 
    1877    26        | express . NOT_EQUAL express 
    1878    26        | express NOT_EQUAL express . 
    1879    27        | express . OR express 
    1880    28        | express . AND express 
    1881  
    1882     OR   shift, and go to state 66 
    1883     AND  shift, and go to state 67 
    1884     '^'  shift, and go to state 78 
    1885  
    1886     $default  reduce using rule 26 (express) 
    1887  
    1888  
    1889 state 109 
    1890  
    1891    16 express: express . '+' express 
    1892    17        | express . '-' express 
    1893    18        | express . '/' express 
    1894    19        | express . '*' express 
    1895    20        | express . '^' express 
    1896    21        | express . LESS express 
    1897    21        | express LESS express . 
    1898    22        | express . GREATER express 
    1899    23        | express . LESS_EQUAL express 
    1900    24        | express . GREATER_EQUAL express 
    1901    25        | express . EQUAL express 
    1902    26        | express . NOT_EQUAL express 
    1903    27        | express . OR express 
    1904    28        | express . AND express 
    1905  
    1906     OR             shift, and go to state 66 
    1907     AND            shift, and go to state 67 
    1908     EQUAL          shift, and go to state 68 
    1909     NOT_EQUAL      shift, and go to state 69 
    1910     GREATER        shift, and go to state 72 
    1911     GREATER_EQUAL  shift, and go to state 73 
    1912     '^'            shift, and go to state 78 
     2266state 124 
     2267 
     2268   19 express: express . '+' express 
     2269   20        | express . '-' express 
     2270   20        | express '-' express . 
     2271   21        | express . '/' express 
     2272   22        | express . '*' express 
     2273   23        | express . '^' express 
     2274   24        | express . "<" express 
     2275   25        | express . ">" express 
     2276   26        | express . "<=" express 
     2277   27        | express . ">=" express 
     2278   28        | express . "==" express 
     2279   29        | express . "!=" express 
     2280   30        | express . "||" express 
     2281   31        | express . "&&" express 
     2282 
     2283    "||"  shift, and go to state 75 
     2284    "&&"  shift, and go to state 76 
     2285    "=="  shift, and go to state 77 
     2286    "!="  shift, and go to state 78 
     2287    "<"   shift, and go to state 79 
     2288    "<="  shift, and go to state 80 
     2289    ">"   shift, and go to state 81 
     2290    ">="  shift, and go to state 82 
     2291    '*'   shift, and go to state 85 
     2292    '/'   shift, and go to state 86 
     2293    '^'   shift, and go to state 87 
     2294 
     2295    $default  reduce using rule 20 (express) 
     2296 
     2297 
     2298state 125 
     2299 
     2300   19 express: express . '+' express 
     2301   19        | express '+' express . 
     2302   20        | express . '-' express 
     2303   21        | express . '/' express 
     2304   22        | express . '*' express 
     2305   23        | express . '^' express 
     2306   24        | express . "<" express 
     2307   25        | express . ">" express 
     2308   26        | express . "<=" express 
     2309   27        | express . ">=" express 
     2310   28        | express . "==" express 
     2311   29        | express . "!=" express 
     2312   30        | express . "||" express 
     2313   31        | express . "&&" express 
     2314 
     2315    "||"  shift, and go to state 75 
     2316    "&&"  shift, and go to state 76 
     2317    "=="  shift, and go to state 77 
     2318    "!="  shift, and go to state 78 
     2319    "<"   shift, and go to state 79 
     2320    "<="  shift, and go to state 80 
     2321    ">"   shift, and go to state 81 
     2322    ">="  shift, and go to state 82 
     2323    '*'   shift, and go to state 85 
     2324    '/'   shift, and go to state 86 
     2325    '^'   shift, and go to state 87 
     2326 
     2327    $default  reduce using rule 19 (express) 
     2328 
     2329 
     2330state 126 
     2331 
     2332   19 express: express . '+' express 
     2333   20        | express . '-' express 
     2334   21        | express . '/' express 
     2335   22        | express . '*' express 
     2336   22        | express '*' express . 
     2337   23        | express . '^' express 
     2338   24        | express . "<" express 
     2339   25        | express . ">" express 
     2340   26        | express . "<=" express 
     2341   27        | express . ">=" express 
     2342   28        | express . "==" express 
     2343   29        | express . "!=" express 
     2344   30        | express . "||" express 
     2345   31        | express . "&&" express 
     2346 
     2347    "||"  shift, and go to state 75 
     2348    "&&"  shift, and go to state 76 
     2349    "=="  shift, and go to state 77 
     2350    "!="  shift, and go to state 78 
     2351    "<"   shift, and go to state 79 
     2352    "<="  shift, and go to state 80 
     2353    ">"   shift, and go to state 81 
     2354    ">="  shift, and go to state 82 
     2355    '^'   shift, and go to state 87 
     2356 
     2357    $default  reduce using rule 22 (express) 
     2358 
     2359 
     2360state 127 
     2361 
     2362   19 express: express . '+' express 
     2363   20        | express . '-' express 
     2364   21        | express . '/' express 
     2365   21        | express '/' express . 
     2366   22        | express . '*' express 
     2367   23        | express . '^' express 
     2368   24        | express . "<" express 
     2369   25        | express . ">" express 
     2370   26        | express . "<=" express 
     2371   27        | express . ">=" express 
     2372   28        | express . "==" express 
     2373   29        | express . "!=" express 
     2374   30        | express . "||" express 
     2375   31        | express . "&&" express 
     2376 
     2377    "||"  shift, and go to state 75 
     2378    "&&"  shift, and go to state 76 
     2379    "=="  shift, and go to state 77 
     2380    "!="  shift, and go to state 78 
     2381    "<"   shift, and go to state 79 
     2382    "<="  shift, and go to state 80 
     2383    ">"   shift, and go to state 81 
     2384    ">="  shift, and go to state 82 
     2385    '^'   shift, and go to state 87 
    19132386 
    19142387    $default  reduce using rule 21 (express) 
    19152388 
    19162389 
    1917 state 110 
    1918  
    1919    16 express: express . '+' express 
    1920    17        | express . '-' express 
    1921    18        | express . '/' express 
    1922    19        | express . '*' express 
    1923    20        | express . '^' express 
    1924    21        | express . LESS express 
    1925    22        | express . GREATER express 
    1926    23        | express . LESS_EQUAL express 
    1927    23        | express LESS_EQUAL express . 
    1928    24        | express . GREATER_EQUAL express 
    1929    25        | express . EQUAL express 
    1930    26        | express . NOT_EQUAL express 
    1931    27        | express . OR express 
    1932    28        | express . AND express 
    1933  
    1934     OR             shift, and go to state 66 
    1935     AND            shift, and go to state 67 
    1936     EQUAL          shift, and go to state 68 
    1937     NOT_EQUAL      shift, and go to state 69 
    1938     GREATER        shift, and go to state 72 
    1939     GREATER_EQUAL  shift, and go to state 73 
    1940     '^'            shift, and go to state 78 
     2390state 128 
     2391 
     2392   19 express: express . '+' express 
     2393   20        | express . '-' express 
     2394   21        | express . '/' express 
     2395   22        | express . '*' express 
     2396   23        | express . '^' express 
     2397   23        | express '^' express . 
     2398   24        | express . "<" express 
     2399   25        | express . ">" express 
     2400   26        | express . "<=" express 
     2401   27        | express . ">=" express 
     2402   28        | express . "==" express 
     2403   29        | express . "!=" express 
     2404   30        | express . "||" express 
     2405   31        | express . "&&" express 
     2406 
     2407    '^'  shift, and go to state 87 
    19412408 
    19422409    $default  reduce using rule 23 (express) 
    19432410 
    19442411 
    1945 state 111 
    1946  
    1947    16 express: express . '+' express 
    1948    17        | express . '-' express 
    1949    18        | express . '/' express 
    1950    19        | express . '*' express 
    1951    20        | express . '^' express 
    1952    21        | express . LESS express 
    1953    22        | express . GREATER express 
    1954    22        | express GREATER express . 
    1955    23        | express . LESS_EQUAL express 
    1956    24        | express . GREATER_EQUAL express 
    1957    25        | express . EQUAL express 
    1958    26        | express . NOT_EQUAL express 
    1959    27        | express . OR express 
    1960    28        | express . AND express 
    1961  
    1962     OR         shift, and go to state 66 
    1963     AND        shift, and go to state 67 
    1964     EQUAL      shift, and go to state 68 
    1965     NOT_EQUAL  shift, and go to state 69 
    1966     '^'        shift, and go to state 78 
    1967  
    1968     $default  reduce using rule 22 (express) 
    1969  
    1970  
    1971 state 112 
    1972  
    1973    16 express: express . '+' express 
    1974    17        | express . '-' express 
    1975    18        | express . '/' express 
    1976    19        | express . '*' express 
    1977    20        | express . '^' express 
    1978    21        | express . LESS express 
    1979    22        | express . GREATER express 
    1980    23        | express . LESS_EQUAL express 
    1981    24        | express . GREATER_EQUAL express 
    1982    24        | express GREATER_EQUAL express . 
    1983    25        | express . EQUAL express 
    1984    26        | express . NOT_EQUAL express 
    1985    27        | express . OR express 
    1986    28        | express . AND express 
    1987  
    1988     OR         shift, and go to state 66 
    1989     AND        shift, and go to state 67 
    1990     EQUAL      shift, and go to state 68 
    1991     NOT_EQUAL  shift, and go to state 69 
    1992     '^'        shift, and go to state 78 
    1993  
    1994     $default  reduce using rule 24 (express) 
    1995  
    1996  
    1997 state 113 
    1998  
    1999    16 express: express . '+' express 
    2000    17        | express . '-' express 
    2001    17        | express '-' express . 
    2002    18        | express . '/' express 
    2003    19        | express . '*' express 
    2004    20        | express . '^' express 
    2005    21        | express . LESS express 
    2006    22        | express . GREATER express 
    2007    23        | express . LESS_EQUAL express 
    2008    24        | express . GREATER_EQUAL express 
    2009    25        | express . EQUAL express 
    2010    26        | express . NOT_EQUAL express 
    2011    27        | express . OR express 
    2012    28        | express . AND express 
    2013  
    2014     OR             shift, and go to state 66 
    2015     AND            shift, and go to state 67 
    2016     EQUAL          shift, and go to state 68 
    2017     NOT_EQUAL      shift, and go to state 69 
    2018     LESS           shift, and go to state 70 
    2019     LESS_EQUAL     shift, and go to state 71 
    2020     GREATER        shift, and go to state 72 
    2021     GREATER_EQUAL  shift, and go to state 73 
    2022     '*'            shift, and go to state 76 
    2023     '/'            shift, and go to state 77 
    2024     '^'            shift, and go to state 78 
    2025  
    2026     $default  reduce using rule 17 (express) 
    2027  
    2028  
    2029 state 114 
    2030  
    2031    16 express: express . '+' express 
    2032    16        | express '+' express . 
    2033    17        | express . '-' express 
    2034    18        | express . '/' express 
    2035    19        | express . '*' express 
    2036    20        | express . '^' express 
    2037    21        | express . LESS express 
    2038    22        | express . GREATER express 
    2039    23        | express . LESS_EQUAL express 
    2040    24        | express . GREATER_EQUAL express 
    2041    25        | express . EQUAL express 
    2042    26        | express . NOT_EQUAL express 
    2043    27        | express . OR express 
    2044    28        | express . AND express 
    2045  
    2046     OR             shift, and go to state 66 
    2047     AND            shift, and go to state 67 
    2048     EQUAL          shift, and go to state 68 
    2049     NOT_EQUAL      shift, and go to state 69 
    2050     LESS           shift, and go to state 70 
    2051     LESS_EQUAL     shift, and go to state 71 
    2052     GREATER        shift, and go to state 72 
    2053     GREATER_EQUAL  shift, and go to state 73 
    2054     '*'            shift, and go to state 76 
    2055     '/'            shift, and go to state 77 
    2056     '^'            shift, and go to state 78 
    2057  
    2058     $default  reduce using rule 16 (express) 
    2059  
    2060  
    2061 state 115 
    2062  
    2063    16 express: express . '+' express 
    2064    17        | express . '-' express 
    2065    18        | express . '/' express 
    2066    19        | express . '*' express 
    2067    19        | express '*' express . 
    2068    20        | express . '^' express 
    2069    21        | express . LESS express 
    2070    22        | express . GREATER express 
    2071    23        | express . LESS_EQUAL express 
    2072    24        | express . GREATER_EQUAL express 
    2073    25        | express . EQUAL express 
    2074    26        | express . NOT_EQUAL express 
    2075    27        | express . OR express 
    2076    28        | express . AND express 
    2077  
    2078     OR             shift, and go to state 66 
    2079     AND            shift, and go to state 67 
    2080     EQUAL          shift, and go to state 68 
    2081     NOT_EQUAL      shift, and go to state 69 
    2082     LESS           shift, and go to state 70 
    2083     LESS_EQUAL     shift, and go to state 71 
    2084     GREATER        shift, and go to state 72 
    2085     GREATER_EQUAL  shift, and go to state 73 
    2086     '^'            shift, and go to state 78 
    2087  
    2088     $default  reduce using rule 19 (express) 
    2089  
    2090  
    2091 state 116 
    2092  
    2093    16 express: express . '+' express 
    2094    17        | express . '-' express 
    2095    18        | express . '/' express 
    2096    18        | express '/' express . 
    2097    19        | express . '*' express 
    2098    20        | express . '^' express 
    2099    21        | express . LESS express 
    2100    22        | express . GREATER express 
    2101    23        | express . LESS_EQUAL express 
    2102    24        | express . GREATER_EQUAL express 
    2103    25        | express . EQUAL express 
    2104    26        | express . NOT_EQUAL express 
    2105    27        | express . OR express 
    2106    28        | express . AND express 
    2107  
    2108     OR             shift, and go to state 66 
    2109     AND            shift, and go to state 67 
    2110     EQUAL          shift, and go to state 68 
    2111     NOT_EQUAL      shift, and go to state 69 
    2112     LESS           shift, and go to state 70 
    2113     LESS_EQUAL     shift, and go to state 71 
    2114     GREATER        shift, and go to state 72 
    2115     GREATER_EQUAL  shift, and go to state 73 
    2116     '^'            shift, and go to state 78 
    2117  
    2118     $default  reduce using rule 18 (express) 
    2119  
    2120  
    2121 state 117 
    2122  
    2123    16 express: express . '+' express 
    2124    17        | express . '-' express 
    2125    18        | express . '/' express 
    2126    19        | express . '*' express 
    2127    20        | express . '^' express 
    2128    20        | express '^' express . 
    2129    21        | express . LESS express 
    2130    22        | express . GREATER express 
    2131    23        | express . LESS_EQUAL express 
    2132    24        | express . GREATER_EQUAL express 
    2133    25        | express . EQUAL express 
    2134    26        | express . NOT_EQUAL express 
    2135    27        | express . OR express 
    2136    28        | express . AND express 
    2137  
    2138     '^'  shift, and go to state 78 
    2139  
    2140     $default  reduce using rule 20 (express) 
    2141  
    2142  
    2143 state 118 
    2144  
    2145    47 struct_elif: ELIF '(' . expression ')' '{' procedure '}' 
    2146  
    2147     TRUE        shift, and go to state 13 
    2148     FALSE       shift, and go to state 14 
    2149     NIL         shift, and go to state 15 
    2150     CHAR        shift, and go to state 16 
    2151     STRING      shift, and go to state 17 
    2152     INTEGER     shift, and go to state 18 
    2153     DOUBLE      shift, and go to state 19 
    2154     IDENTIFIER  shift, and go to state 20 
    2155     '-'         shift, and go to state 21 
    2156     '('         shift, and go to state 22 
    2157     '['         shift, and go to state 23 
    2158  
    2159     member_accessor  go to state 24 
    2160     symbol_accessor  go to state 25 
    2161     expression       go to state 137 
    2162     express          go to state 28 
    2163     arbitrary_call   go to state 39 
    2164     list_symbol      go to state 41 
    2165     primitive        go to state 42 
    2166  
    2167  
    2168 state 119 
    2169  
    2170    49 struct_elif_block: struct_elif_block struct_elif . 
    2171  
    2172     $default  reduce using rule 49 (struct_elif_block) 
    2173  
    2174  
    2175 state 120 
    2176  
    2177    48 struct_else: ELSE . '{' procedure '}' 
    2178  
    2179     '{'  shift, and go to state 138 
    2180  
    2181  
    2182 state 121 
    2183  
    2184    54 else_block: struct_else . 
    2185  
    2186     $default  reduce using rule 54 (else_block) 
    2187  
    2188  
    2189 state 122 
    2190  
    2191    55 conditionals: struct_if elif_block else_block . 
    2192  
    2193     $default  reduce using rule 55 (conditionals) 
    2194  
    2195  
    2196 state 123 
    2197  
    2198    72 parameters_expression: IDENTIFIER . 
    2199  
    2200     $default  reduce using rule 72 (parameters_expression) 
    2201  
    2202  
    2203 state 124 
    2204  
    2205    12 function_definition: DEFUN IDENTIFIER '(' ')' . '{' procedure '}' 
    2206  
    2207     '{'  shift, and go to state 139 
    2208  
    2209  
    2210 state 125 
    2211  
    2212    71 parameters_expression: parameters_expression . ',' IDENTIFIER 
    2213    73 parameters: parameters_expression . 
    2214  
    2215     ','  shift, and go to state 140 
    2216  
    2217     $default  reduce using rule 73 (parameters) 
    2218  
    2219  
    2220 state 126 
    2221  
    2222    13 function_definition: DEFUN IDENTIFIER '(' parameters . ')' '{' procedure '}' 
    2223  
    2224     ')'  shift, and go to state 141 
    2225  
    2226  
    2227 state 127 
    2228  
    2229    11 function_definition: DEFUN IDENTIFIER '{' procedure . '}' 
    2230  
    2231     '}'  shift, and go to state 142 
    2232  
    2233  
    2234 state 128 
    2235  
    2236    38 procedure: pblock . 
    2237    39 pblock: pblock . statement 
    2238  
    2239     BREAK       shift, and go to state 5 
    2240     CONTINUE    shift, and go to state 6 
    2241     RETURN      shift, and go to state 7 
    2242     DELETE      shift, and go to state 8 
    2243     WHILE       shift, and go to state 9 
    2244     FOR         shift, and go to state 10 
    2245     IF          shift, and go to state 11 
    2246     PRINT       shift, and go to state 12 
    2247     TRUE        shift, and go to state 13 
    2248     FALSE       shift, and go to state 14 
    2249     NIL         shift, and go to state 15 
    2250     CHAR        shift, and go to state 16 
    2251     STRING      shift, and go to state 17 
    2252     INTEGER     shift, and go to state 18 
    2253     DOUBLE      shift, and go to state 19 
    2254     IDENTIFIER  shift, and go to state 20 
    2255     '-'         shift, and go to state 21 
    2256     '('         shift, and go to state 22 
    2257     '['         shift, and go to state 23 
    2258  
    2259     $default  reduce using rule 38 (procedure) 
    2260  
    2261     member_accessor    go to state 24 
    2262     symbol_accessor    go to state 25 
    2263     expression         go to state 27 
    2264     express            go to state 28 
    2265     loop_while         go to state 29 
    2266     loop_for           go to state 30 
    2267     control_structure  go to state 31 
    2268     struct_if          go to state 32 
    2269     conditionals       go to state 33 
    2270     statement          go to state 143 
    2271     delete_keyword     go to state 35 
    2272     continue_keyword   go to state 36 
    2273     break_keyword      go to state 37 
    2274     return_keyword     go to state 38 
    2275     arbitrary_call     go to state 39 
    2276     print_keyword      go to state 40 
    2277     list_symbol        go to state 41 
    2278     primitive          go to state 42 
    2279  
    2280  
    22812412state 129 
    22822413 
    2283    40 pblock: statement . 
    2284  
    2285     $default  reduce using rule 40 (pblock) 
     2414   52 struct_elif: "elif" '(' . expression ')' '{' procedure '}' 
     2415 
     2416    "new"       shift, and go to state 12 
     2417    "true"      shift, and go to state 15 
     2418    "false"     shift, and go to state 16 
     2419    "nil"       shift, and go to state 17 
     2420    CHAR        shift, and go to state 18 
     2421    STRING      shift, and go to state 19 
     2422    INTEGER     shift, and go to state 20 
     2423    DOUBLE      shift, and go to state 21 
     2424    IDENTIFIER  shift, and go to state 22 
     2425    '-'         shift, and go to state 23 
     2426    '['         shift, and go to state 24 
     2427    '('         shift, and go to state 25 
     2428 
     2429    object_creation  go to state 27 
     2430    dot_accessor     go to state 28 
     2431    member_accessor  go to state 29 
     2432    accessor         go to state 30 
     2433    symbol_accessor  go to state 31 
     2434    expression       go to state 148 
     2435    express          go to state 34 
     2436    arbitrary_call   go to state 45 
     2437    list_symbol      go to state 47 
     2438    primitive        go to state 48 
    22862439 
    22872440 
    22882441state 130 
    22892442 
    2290    41 loop_while: WHILE '(' expression ')' . '{' procedure '}' 
    2291  
    2292     '{'  shift, and go to state 144 
     2443   54 struct_elif_block: struct_elif_block struct_elif . 
     2444 
     2445    $default  reduce using rule 54 (struct_elif_block) 
    22932446 
    22942447 
    22952448state 131 
    22962449 
    2297    42 loop_for: FOR '(' expression ';' . expression ';' expression ')' '{' procedure '}' 
    2298  
    2299     TRUE        shift, and go to state 13 
    2300     FALSE       shift, and go to state 14 
    2301     NIL         shift, and go to state 15 
    2302     CHAR        shift, and go to state 16 
    2303     STRING      shift, and go to state 17 
    2304     INTEGER     shift, and go to state 18 
    2305     DOUBLE      shift, and go to state 19 
    2306     IDENTIFIER  shift, and go to state 20 
    2307     '-'         shift, and go to state 21 
    2308     '('         shift, and go to state 22 
    2309     '['         shift, and go to state 23 
    2310  
    2311     member_accessor  go to state 24 
    2312     symbol_accessor  go to state 25 
    2313     expression       go to state 145 
    2314     express          go to state 28 
    2315     arbitrary_call   go to state 39 
    2316     list_symbol      go to state 41 
    2317     primitive        go to state 42 
     2450   53 struct_else: "else" . '{' procedure '}' 
     2451 
     2452    '{'  shift, and go to state 149 
    23182453 
    23192454 
    23202455state 132 
    23212456 
    2322    46 struct_if: IF '(' expression ')' . '{' procedure '}' 
    2323  
    2324     '{'  shift, and go to state 146 
     2457   59 else_block: struct_else . 
     2458 
     2459    $default  reduce using rule 59 (else_block) 
    23252460 
    23262461 
    23272462state 133 
    23282463 
    2329    75 argument_list: argument_list ',' expression . 
    2330  
    2331     $default  reduce using rule 75 (argument_list) 
     2464   60 conditionals: struct_if elif_block else_block . 
     2465 
     2466    $default  reduce using rule 60 (conditionals) 
    23322467 
    23332468 
    23342469state 134 
    23352470 
    2336     6 member_accessor: IDENTIFIER '.' IDENTIFIER '(' . ')' 
    2337     7                | IDENTIFIER '.' IDENTIFIER '(' . arguments ')' 
    2338  
    2339     TRUE        shift, and go to state 13 
    2340     FALSE       shift, and go to state 14 
    2341     NIL         shift, and go to state 15 
    2342     CHAR        shift, and go to state 16 
    2343     STRING      shift, and go to state 17 
    2344     INTEGER     shift, and go to state 18 
    2345     DOUBLE      shift, and go to state 19 
    2346     IDENTIFIER  shift, and go to state 20 
    2347     '-'         shift, and go to state 21 
    2348     '('         shift, and go to state 22 
    2349     ')'         shift, and go to state 147 
    2350     '['         shift, and go to state 23 
    2351  
    2352     member_accessor  go to state 24 
    2353     symbol_accessor  go to state 25 
    2354     expression       go to state 49 
    2355     express          go to state 28 
    2356     arbitrary_call   go to state 39 
    2357     list_symbol      go to state 41 
    2358     arguments        go to state 148 
    2359     argument_list    go to state 51 
    2360     primitive        go to state 42 
     2471    4 class_definition: "object" IDENTIFIER '{' procedure . '}' 
     2472 
     2473    '}'  shift, and go to state 150 
    23612474 
    23622475 
    23632476state 135 
    23642477 
    2365    68 arbitrary_call: IDENTIFIER '(' arguments ')' . 
    2366  
    2367     $default  reduce using rule 68 (arbitrary_call) 
     2478   41 procedure: pblock . 
     2479   42 pblock: pblock . statement 
     2480 
     2481    "object"    shift, and go to state 4 
     2482    "defun"     shift, and go to state 5 
     2483    "break"     shift, and go to state 6 
     2484    "conintue"  shift, and go to state 7 
     2485    "return"    shift, and go to state 8 
     2486    "delete"    shift, and go to state 9 
     2487    "while"     shift, and go to state 10 
     2488    "for"       shift, and go to state 11 
     2489    "new"       shift, and go to state 12 
     2490    "if"        shift, and go to state 13 
     2491    "print"     shift, and go to state 14 
     2492    "true"      shift, and go to state 15 
     2493    "false"     shift, and go to state 16 
     2494    "nil"       shift, and go to state 17 
     2495    CHAR        shift, and go to state 18 
     2496    STRING      shift, and go to state 19 
     2497    INTEGER     shift, and go to state 20 
     2498    DOUBLE      shift, and go to state 21 
     2499    IDENTIFIER  shift, and go to state 22 
     2500    '-'         shift, and go to state 23 
     2501    '['         shift, and go to state 24 
     2502    '('         shift, and go to state 25 
     2503 
     2504    $default  reduce using rule 41 (procedure) 
     2505 
     2506    class_definition     go to state 26 
     2507    object_creation      go to state 27 
     2508    dot_accessor         go to state 28 
     2509    member_accessor      go to state 29 
     2510    accessor             go to state 30 
     2511    symbol_accessor      go to state 31 
     2512    function_definition  go to state 32 
     2513    expression           go to state 33 
     2514    express              go to state 34 
     2515    loop_while           go to state 35 
     2516    loop_for             go to state 36 
     2517    control_structure    go to state 37 
     2518    struct_if            go to state 38 
     2519    conditionals         go to state 39 
     2520    statement            go to state 151 
     2521    delete_keyword       go to state 41 
     2522    continue_keyword     go to state 42 
     2523    break_keyword        go to state 43 
     2524    return_keyword       go to state 44 
     2525    arbitrary_call       go to state 45 
     2526    print_keyword        go to state 46 
     2527    list_symbol          go to state 47 
     2528    primitive            go to state 48 
    23682529 
    23692530 
    23702531state 136 
    23712532 
    2372     9 symbol_accessor: IDENTIFIER '[' expression ']' . 
    2373  
    2374     $default  reduce using rule 9 (symbol_accessor) 
     2533   43 pblock: statement . 
     2534 
     2535    $default  reduce using rule 43 (pblock) 
    23752536 
    23762537 
    23772538state 137 
    23782539 
    2379    47 struct_elif: ELIF '(' expression . ')' '{' procedure '}' 
    2380  
    2381     ')'  shift, and go to state 149 
     2540   14 function_definition: "defun" IDENTIFIER '{' procedure . '}' 
     2541 
     2542    '}'  shift, and go to state 152 
    23822543 
    23832544 
    23842545state 138 
    23852546 
    2386    48 struct_else: ELSE '{' . procedure '}' 
    2387  
    2388     BREAK       shift, and go to state 5 
    2389     CONTINUE    shift, and go to state 6 
    2390     RETURN      shift, and go to state 7 
    2391     DELETE      shift, and go to state 8 
    2392     WHILE       shift, and go to state 9 
    2393     FOR         shift, and go to state 10 
    2394     IF          shift, and go to state 11 
    2395     PRINT       shift, and go to state 12 
    2396     TRUE        shift, and go to state 13 
    2397     FALSE       shift, and go to state 14 
    2398     NIL         shift, and go to state 15 
    2399     CHAR        shift, and go to state 16 
    2400     STRING      shift, and go to state 17 
    2401     INTEGER     shift, and go to state 18 
    2402     DOUBLE      shift, and go to state 19 
    2403     IDENTIFIER  shift, and go to state 20 
    2404     '-'         shift, and go to state 21 
    2405     '('         shift, and go to state 22 
    2406     '['         shift, and go to state 23 
    2407  
    2408     member_accessor    go to state 24 
    2409     symbol_accessor    go to state 25 
    2410     expression         go to state 27 
    2411     express            go to state 28 
    2412     procedure          go to state 150 
    2413     pblock             go to state 128 
    2414     loop_while         go to state 29 
    2415     loop_for           go to state 30 
    2416     control_structure  go to state 31 
    2417     struct_if          go to state 32 
    2418     conditionals       go to state 33 
    2419     statement          go to state 129 
    2420     delete_keyword     go to state 35 
    2421     continue_keyword   go to state 36 
    2422     break_keyword      go to state 37 
    2423     return_keyword     go to state 38 
    2424     arbitrary_call     go to state 39 
    2425     print_keyword      go to state 40 
    2426     list_symbol        go to state 41 
    2427     primitive          go to state 42 
     2547   77 parameters_expression: IDENTIFIER . 
     2548 
     2549    $default  reduce using rule 77 (parameters_expression) 
    24282550 
    24292551 
    24302552state 139 
    24312553 
    2432    12 function_definition: DEFUN IDENTIFIER '(' ')' '{' . procedure '}' 
    2433  
    2434     BREAK       shift, and go to state 5 
    2435     CONTINUE    shift, and go to state 6 
    2436     RETURN      shift, and go to state 7 
    2437     DELETE      shift, and go to state 8 
    2438     WHILE       shift, and go to state 9 
    2439     FOR         shift, and go to state 10 
    2440     IF          shift, and go to state 11 
    2441     PRINT       shift, and go to state 12 
    2442     TRUE        shift, and go to state 13 
    2443     FALSE       shift, and go to state 14 
    2444     NIL         shift, and go to state 15 
    2445     CHAR        shift, and go to state 16 
    2446     STRING      shift, and go to state 17 
    2447     INTEGER     shift, and go to state 18 
    2448     DOUBLE      shift, and go to state 19 
    2449     IDENTIFIER  shift, and go to state 20 
    2450     '-'         shift, and go to state 21 
    2451     '('         shift, and go to state 22 
    2452     '['         shift, and go to state 23 
    2453  
    2454     member_accessor    go to state 24 
    2455     symbol_accessor    go to state 25 
    2456     expression         go to state 27 
    2457     express            go to state 28 
    2458     procedure          go to state 151 
    2459     pblock             go to state 128 
    2460     loop_while         go to state 29 
    2461     loop_for           go to state 30 
    2462     control_structure  go to state 31 
    2463     struct_if          go to state 32 
    2464     conditionals       go to state 33 
    2465     statement          go to state 129 
    2466     delete_keyword     go to state 35 
    2467     continue_keyword   go to state 36 
    2468     break_keyword      go to state 37 
    2469     return_keyword     go to state 38 
    2470     arbitrary_call     go to state 39 
    2471     print_keyword      go to state 40 
    2472     list_symbol        go to state 41 
    2473     primitive          go to state 42 
     2554   15 function_definition: "defun" IDENTIFIER '(' ')' . '{' procedure '}' 
     2555 
     2556    '{'  shift, and go to state 153 
    24742557 
    24752558 
    24762559state 140 
    24772560 
    2478    71 parameters_expression: parameters_expression ',' . IDENTIFIER 
    2479  
    2480     IDENTIFIER  shift, and go to state 152 
     2561   76 parameters_expression: parameters_expression . ',' IDENTIFIER 
     2562   78 parameters: parameters_expression . 
     2563 
     2564    ','  shift, and go to state 154 
     2565 
     2566    $default  reduce using rule 78 (parameters) 
    24812567 
    24822568 
    24832569state 141 
    24842570 
    2485    13 function_definition: DEFUN IDENTIFIER '(' parameters ')' . '{' procedure '}' 
    2486  
    2487     '{'  shift, and go to state 153 
     2571   16 function_definition: "defun" IDENTIFIER '(' parameters . ')' '{' procedure '}' 
     2572 
     2573    ')'  shift, and go to state 155 
    24882574 
    24892575 
    24902576state 142 
    24912577 
    2492    11 function_definition: DEFUN IDENTIFIER '{' procedure '}' . 
    2493  
    2494     $default  reduce using rule 11 (function_definition) 
     2578   44 loop_while: "while" '(' expression ')' . '{' procedure '}' 
     2579 
     2580    '{'  shift, and go to state 156 
    24952581 
    24962582 
    24972583state 143 
    24982584 
    2499    39 pblock: pblock statement . 
    2500  
    2501     $default  reduce using rule 39 (pblock) 
     2585   45 loop_for: "for" '(' expression ';' . expression ';' expression ')' '{' procedure '}' 
     2586 
     2587    "new"       shift, and go to state 12 
     2588    "true"      shift, and go to state 15 
     2589    "false"     shift, and go to state 16 
     2590    "nil"       shift, and go to state 17 
     2591    CHAR        shift, and go to state 18 
     2592    STRING      shift, and go to state 19 
     2593    INTEGER     shift, and go to state 20 
     2594    DOUBLE      shift, and go to state 21 
     2595    IDENTIFIER  shift, and go to state 22 
     2596    '-'         shift, and go to state 23 
     2597    '['         shift, and go to state 24 
     2598    '('         shift, and go to state 25 
     2599 
     2600    object_creation  go to state 27 
     2601    dot_accessor     go to state 28 
     2602    member_accessor  go to state 29 
     2603    accessor         go to state 30 
     2604    symbol_accessor  go to state 31 
     2605    expression       go to state 157 
     2606    express          go to state 34 
     2607    arbitrary_call   go to state 45 
     2608    list_symbol      go to state 47 
     2609    primitive        go to state 48 
    25022610 
    25032611 
    25042612state 144 
    25052613 
    2506    41 loop_while: WHILE '(' expression ')' '{' . procedure '}' 
    2507  
    2508     BREAK       shift, and go to state 5 
    2509     CONTINUE    shift, and go to state 6 
    2510     RETURN      shift, and go to state 7 
    2511     DELETE      shift, and go to state 8 
    2512     WHILE       shift, and go to state 9 
    2513     FOR         shift, and go to state 10 
    2514     IF          shift, and go to state 11 
    2515     PRINT       shift, and go to state 12 
    2516     TRUE        shift, and go to state 13 
    2517     FALSE       shift, and go to state 14 
    2518     NIL         shift, and go to state 15 
    2519     CHAR        shift, and go to state 16 
    2520     STRING      shift, and go to state 17 
    2521     INTEGER     shift, and go to state 18 
    2522     DOUBLE      shift, and go to state 19 
    2523     IDENTIFIER  shift, and go to state 20 
    2524     '-'         shift, and go to state 21 
    2525     '('         shift, and go to state 22 
    2526     '['         shift, and go to state 23 
    2527  
    2528     member_accessor    go to state 24 
    2529     symbol_accessor    go to state 25 
    2530     expression         go to state 27 
    2531     express            go to state 28 
    2532     procedure          go to state 154 
    2533     pblock             go to state 128 
    2534     loop_while         go to state 29 
    2535     loop_for           go to state 30 
    2536     control_structure  go to state 31 
    2537     struct_if          go to state 32 
    2538     conditionals       go to state 33 
    2539     statement          go to state 129 
    2540     delete_keyword     go to state 35 
    2541     continue_keyword   go to state 36 
    2542     break_keyword      go to state 37 
    2543     return_keyword     go to state 38 
    2544     arbitrary_call     go to state 39 
    2545     print_keyword      go to state 40 
    2546     list_symbol        go to state 41 
    2547     primitive          go to state 42 
     2614   51 struct_if: "if" '(' expression ')' . '{' procedure '}' 
     2615 
     2616    '{'  shift, and go to state 158 
    25482617 
    25492618 
    25502619state 145 
    25512620 
    2552    42 loop_for: FOR '(' expression ';' expression . ';' expression ')' '{' procedure '}' 
    2553  
    2554     ';'  shift, and go to state 155 
     2621   80 argument_list: argument_list ',' expression . 
     2622 
     2623    $default  reduce using rule 80 (argument_list) 
    25552624 
    25562625 
    25572626state 146 
    25582627 
    2559    46 struct_if: IF '(' expression ')' '{' . procedure '}' 
    2560  
    2561     BREAK       shift, and go to state 5 
    2562     CONTINUE    shift, and go to state 6 
    2563     RETURN      shift, and go to state 7 
    2564     DELETE      shift, and go to state 8 
    2565     WHILE       shift, and go to state 9 
    2566     FOR         shift, and go to state 10 
    2567     IF          shift, and go to state 11 
    2568     PRINT       shift, and go to state 12 
    2569     TRUE        shift, and go to state 13 
    2570     FALSE       shift, and go to state 14 
    2571     NIL         shift, and go to state 15 
    2572     CHAR        shift, and go to state 16 
    2573     STRING      shift, and go to state 17 
    2574     INTEGER     shift, and go to state 18 
    2575     DOUBLE      shift, and go to state 19 
    2576     IDENTIFIER  shift, and go to state 20 
    2577     '-'         shift, and go to state 21 
    2578     '('         shift, and go to state 22 
    2579     '['         shift, and go to state 23 
    2580  
    2581     member_accessor    go to state 24 
    2582     symbol_accessor    go to state 25 
    2583     expression         go to state 27 
    2584     express            go to state 28 
    2585     procedure          go to state 156 
    2586     pblock             go to state 128 
    2587     loop_while         go to state 29 
    2588     loop_for           go to state 30 
    2589     control_structure  go to state 31 
    2590     struct_if          go to state 32 
    2591     conditionals       go to state 33 
    2592     statement          go to state 129 
    2593     delete_keyword     go to state 35 
    2594     continue_keyword   go to state 36 
    2595     break_keyword      go to state 37 
    2596     return_keyword     go to state 38 
    2597     arbitrary_call     go to state 39 
    2598     print_keyword      go to state 40 
    2599     list_symbol        go to state 41 
    2600     primitive          go to state 42 
     2628   13 symbol_accessor: IDENTIFIER '[' expression ']' . 
     2629 
     2630    $default  reduce using rule 13 (symbol_accessor) 
    26012631 
    26022632 
    26032633state 147 
    26042634 
    2605     6 member_accessor: IDENTIFIER '.' IDENTIFIER '(' ')' . 
    2606  
    2607     $default  reduce using rule 6 (member_accessor) 
     2635   73 arbitrary_call: IDENTIFIER '(' arguments ')' . 
     2636 
     2637    $default  reduce using rule 73 (arbitrary_call) 
    26082638 
    26092639 
    26102640state 148 
    26112641 
    2612     7 member_accessor: IDENTIFIER '.' IDENTIFIER '(' arguments . ')' 
    2613  
    2614     ')'  shift, and go to state 157 
     2642   52 struct_elif: "elif" '(' expression . ')' '{' procedure '}' 
     2643 
     2644    ')'  shift, and go to state 159 
    26152645 
    26162646 
    26172647state 149 
    26182648 
    2619    47 struct_elif: ELIF '(' expression ')' . '{' procedure '}' 
    2620  
    2621     '{'  shift, and go to state 158 
     2649   53 struct_else: "else" '{' . procedure '}' 
     2650 
     2651    "object"    shift, and go to state 4 
     2652    "defun"     shift, and go to state 5 
     2653    "break"     shift, and go to state 6 
     2654    "conintue"  shift, and go to state 7 
     2655    "return"    shift, and go to state 8 
     2656    "delete"    shift, and go to state 9 
     2657    "while"     shift, and go to state 10 
     2658    "for"       shift, and go to state 11 
     2659    "new"       shift, and go to state 12 
     2660    "if"        shift, and go to state 13 
     2661    "print"     shift, and go to state 14 
     2662    "true"      shift, and go to state 15 
     2663    "false"     shift, and go to state 16 
     2664    "nil"       shift, and go to state 17 
     2665    CHAR        shift, and go to state 18 
     2666    STRING      shift, and go to state 19 
     2667    INTEGER     shift, and go to state 20 
     2668    DOUBLE      shift, and go to state 21 
     2669    IDENTIFIER  shift, and go to state 22 
     2670    '-'         shift, and go to state 23 
     2671    '['         shift, and go to state 24 
     2672    '('         shift, and go to state 25 
     2673 
     2674    class_definition     go to state 26 
     2675    object_creation      go to state 27 
     2676    dot_accessor         go to state 28 
     2677    member_accessor      go to state 29 
     2678    accessor             go to state 30 
     2679    symbol_accessor      go to state 31 
     2680    function_definition  go to state 32 
     2681    expression           go to state 33 
     2682    express              go to state 34 
     2683    procedure            go to state 160 
     2684    pblock               go to state 135 
     2685    loop_while           go to state 35 
     2686    loop_for             go to state 36 
     2687    control_structure    go to state 37 
     2688    struct_if            go to state 38 
     2689    conditionals         go to state 39 
     2690    statement            go to state 136 
     2691    delete_keyword       go to state 41 
     2692    continue_keyword     go to state 42 
     2693    break_keyword        go to state 43 
     2694    return_keyword       go to state 44 
     2695    arbitrary_call       go to state 45 
     2696    print_keyword        go to state 46 
     2697    list_symbol          go to state 47 
     2698    primitive            go to state 48 
    26222699 
    26232700 
    26242701state 150 
    26252702 
    2626    48 struct_else: ELSE '{' procedure . '}' 
    2627  
    2628     '}'  shift, and go to state 159 
     2703    4 class_definition: "object" IDENTIFIER '{' procedure '}' . 
     2704 
     2705    $default  reduce using rule 4 (class_definition) 
    26292706 
    26302707 
    26312708state 151 
    26322709 
    2633    12 function_definition: DEFUN IDENTIFIER '(' ')' '{' procedure . '}' 
    2634  
    2635     '}'  shift, and go to state 160 
     2710   42 pblock: pblock statement . 
     2711 
     2712    $default  reduce using rule 42 (pblock) 
    26362713 
    26372714 
    26382715state 152 
    26392716 
    2640    71 parameters_expression: parameters_expression ',' IDENTIFIER . 
    2641  
    2642     $default  reduce using rule 71 (parameters_expression) 
     2717   14 function_definition: "defun" IDENTIFIER '{' procedure '}' . 
     2718 
     2719    $default  reduce using rule 14 (function_definition) 
    26432720 
    26442721 
    26452722state 153 
    26462723 
    2647    13 function_definition: DEFUN IDENTIFIER '(' parameters ')' '{' . procedure '}' 
    2648  
    2649     BREAK       shift, and go to state 5 
    2650     CONTINUE    shift, and go to state 6 
    2651     RETURN      shift, and go to state 7 
    2652     DELETE      shift, and go to state 8 
    2653     WHILE       shift, and go to state 9 
    2654     FOR         shift, and go to state 10 
    2655     IF          shift, and go to state 11 
    2656     PRINT       shift, and go to state 12 
    2657     TRUE        shift, and go to state 13 
    2658     FALSE       shift, and go to state 14 
    2659     NIL         shift, and go to state 15 
    2660     CHAR        shift, and go to state 16 
    2661     STRING      shift, and go to state 17 
    2662     INTEGER     shift, and go to state 18 
    2663     DOUBLE      shift, and go to state 19 
    2664     IDENTIFIER  shift, and go to state 20 
    2665     '-'         shift, and go to state 21 
    2666     '('         shift, and go to state 22 
    2667     '['         shift, and go to state 23 
    2668  
    2669     member_accessor    go to state 24 
    2670     symbol_accessor    go to state 25 
    2671     expression         go to state 27 
    2672     express            go to state 28 
    2673     procedure          go to state 161 
    2674     pblock             go to state 128 
    2675     loop_while         go to state 29 
    2676     loop_for           go to state 30 
    2677     control_structure  go to state 31 
    2678     struct_if          go to state 32 
    2679     conditionals       go to state 33 
    2680     statement          go to state 129 
    2681     delete_keyword     go to state 35 
    2682     continue_keyword   go to state 36 
    2683     break_keyword      go to state 37 
    2684     return_keyword     go to state 38 
    2685     arbitrary_call     go to state 39 
    2686     print_keyword      go to state 40 
    2687     list_symbol        go to state 41 
    2688     primitive          go to state 42 
     2724   15 function_definition: "defun" IDENTIFIER '(' ')' '{' . procedure '}' 
     2725 
     2726    "object"    shift, and go to state 4 
     2727    "defun"     shift, and go to state 5 
     2728    "break"     shift, and go to state 6 
     2729    "conintue"  shift, and go to state 7 
     2730    "return"    shift, and go to state 8 
     2731    "delete"    shift, and go to state 9 
     2732    "while"     shift, and go to state 10 
     2733    "for"       shift, and go to state 11 
     2734    "new"       shift, and go to state 12 
     2735    "if"        shift, and go to state 13 
     2736    "print"     shift, and go to state 14 
     2737    "true"      shift, and go to state 15 
     2738    "false"     shift, and go to state 16 
     2739    "nil"       shift, and go to state 17 
     2740    CHAR        shift, and go to state 18 
     2741    STRING      shift, and go to state 19 
     2742    INTEGER     shift, and go to state 20 
     2743    DOUBLE      shift, and go to state 21 
     2744    IDENTIFIER  shift, and go to state 22 
     2745    '-'         shift, and go to state 23 
     2746    '['         shift, and go to state 24 
     2747    '('         shift, and go to state 25 
     2748 
     2749    class_definition     go to state 26 
     2750    object_creation      go to state 27 
     2751    dot_accessor         go to state 28 
     2752    member_accessor      go to state 29 
     2753    accessor             go to state 30 
     2754    symbol_accessor      go to state 31 
     2755    function_definition  go to state 32 
     2756    expression           go to state 33 
     2757    express              go to state 34 
     2758    procedure            go to state 161 
     2759    pblock               go to state 135 
     2760    loop_while           go to state 35 
     2761    loop_for             go to state 36 
     2762    control_structure    go to state 37 
     2763    struct_if            go to state 38 
     2764    conditionals         go to state 39 
     2765    statement            go to state 136 
     2766    delete_keyword       go to state 41 
     2767    continue_keyword     go to state 42 
     2768    break_keyword        go to state 43 
     2769    return_keyword       go to state 44 
     2770    arbitrary_call       go to state 45 
     2771    print_keyword        go to state 46 
     2772    list_symbol          go to state 47 
     2773    primitive            go to state 48 
    26892774 
    26902775 
    26912776state 154 
    26922777 
    2693    41 loop_while: WHILE '(' expression ')' '{' procedure . '}' 
    2694  
    2695     '}'  shift, and go to state 162 
     2778   76 parameters_expression: parameters_expression ',' . IDENTIFIER 
     2779 
     2780    IDENTIFIER  shift, and go to state 162 
    26962781 
    26972782 
    26982783state 155 
    26992784 
    2700    42 loop_for: FOR '(' expression ';' expression ';' . expression ')' '{' procedure '}' 
    2701  
    2702     TRUE        shift, and go to state 13 
    2703     FALSE       shift, and go to state 14 
    2704     NIL         shift, and go to state 15 
    2705     CHAR        shift, and go to state 16 
    2706     STRING      shift, and go to state 17 
    2707     INTEGER     shift, and go to state 18 
    2708     DOUBLE      shift, and go to state 19 
    2709     IDENTIFIER  shift, and go to state 20 
    2710     '-'         shift, and go to state 21 
    2711     '('         shift, and go to state 22 
    2712     '['         shift, and go to state 23 
    2713  
    2714     member_accessor  go to state 24 
    2715     symbol_accessor  go to state 25 
    2716     expression       go to state 163 
    2717     express          go to state 28 
    2718     arbitrary_call   go to state 39 
    2719     list_symbol      go to state 41 
    2720     primitive        go to state 42 
     2785   16 function_definition: "defun" IDENTIFIER '(' parameters ')' . '{' procedure '}' 
     2786 
     2787    '{'  shift, and go to state 163 
    27212788 
    27222789 
    27232790state 156 
    27242791 
    2725    46 struct_if: IF '(' expression ')' '{' procedure . '}' 
    2726  
    2727     '}'  shift, and go to state 164 
     2792   44 loop_while: "while" '(' expression ')' '{' . procedure '}' 
     2793 
     2794    "object"    shift, and go to state 4 
     2795    "defun"     shift, and go to state 5 
     2796    "break"     shift, and go to state 6 
     2797    "conintue"  shift, and go to state 7 
     2798    "return"    shift, and go to state 8 
     2799    "delete"    shift, and go to state 9 
     2800    "while"     shift, and go to state 10 
     2801    "for"       shift, and go to state 11 
     2802    "new"       shift, and go to state 12 
     2803    "if"        shift, and go to state 13 
     2804    "print"     shift, and go to state 14 
     2805    "true"      shift, and go to state 15 
     2806    "false"     shift, and go to state 16 
     2807    "nil"       shift, and go to state 17 
     2808    CHAR        shift, and go to state 18 
     2809    STRING      shift, and go to state 19 
     2810    INTEGER     shift, and go to state 20 
     2811    DOUBLE      shift, and go to state 21 
     2812    IDENTIFIER  shift, and go to state 22 
     2813    '-'         shift, and go to state 23 
     2814    '['         shift, and go to state 24 
     2815    '('         shift, and go to state 25 
     2816 
     2817    class_definition     go to state 26 
     2818    object_creation      go to state 27 
     2819    dot_accessor         go to state 28 
     2820    member_accessor      go to state 29 
     2821    accessor             go to state 30 
     2822    symbol_accessor      go to state 31 
     2823    function_definition  go to state 32 
     2824    expression           go to state 33 
     2825    express              go to state 34 
     2826    procedure            go to state 164 
     2827    pblock               go to state 135 
     2828    loop_while           go to state 35 
     2829    loop_for             go to state 36 
     2830    control_structure    go to state 37 
     2831    struct_if            go to state 38 
     2832    conditionals         go to state 39 
     2833    statement            go to state 136 
     2834    delete_keyword       go to state 41 
     2835    continue_keyword     go to state 42 
     2836    break_keyword        go to state 43 
     2837    return_keyword       go to state 44 
     2838    arbitrary_call       go to state 45 
     2839    print_keyword        go to state 46 
     2840    list_symbol          go to state 47 
     2841    primitive            go to state 48 
    27282842 
    27292843 
    27302844state 157 
    27312845 
    2732     7 member_accessor: IDENTIFIER '.' IDENTIFIER '(' arguments ')' . 
    2733  
    2734     $default  reduce using rule 7 (member_accessor) 
     2846   45 loop_for: "for" '(' expression ';' expression . ';' expression ')' '{' procedure '}' 
     2847 
     2848    ';'  shift, and go to state 165 
    27352849 
    27362850 
    27372851state 158 
    27382852 
    2739    47 struct_elif: ELIF '(' expression ')' '{' . procedure '}' 
    2740  
    2741     BREAK       shift, and go to state 5 
    2742     CONTINUE    shift, and go to state 6 
    2743     RETURN      shift, and go to state 7 
    2744     DELETE      shift, and go to state 8 
    2745     WHILE       shift, and go to state 9 
    2746     FOR         shift, and go to state 10 
    2747     IF          shift, and go to state 11 
    2748     PRINT       shift, and go to state 12 
    2749     TRUE        shift, and go to state 13 
    2750     FALSE       shift, and go to state 14 
    2751     NIL         shift, and go to state 15 
    2752     CHAR        shift, and go to state 16 
    2753     STRING      shift, and go to state 17 
    2754     INTEGER     shift, and go to state 18 
    2755     DOUBLE      shift, and go to state 19 
    2756     IDENTIFIER  shift, and go to state 20 
    2757     '-'         shift, and go to state 21 
    2758     '('         shift, and go to state 22 
    2759     '['         shift, and go to state 23 
    2760  
    2761     member_accessor    go to state 24 
    2762     symbol_accessor    go to state 25 
    2763     expression         go to state 27 
    2764     express            go to state 28 
    2765     procedure          go to state 165 
    2766     pblock             go to state 128 
    2767     loop_while         go to state 29 
    2768     loop_for           go to state 30 
    2769     control_structure  go to state 31 
    2770     struct_if          go to state 32 
    2771     conditionals       go to state 33 
    2772     statement          go to state 129 
    2773     delete_keyword     go to state 35 
    2774     continue_keyword   go to state 36 
    2775     break_keyword      go to state 37 
    2776     return_keyword     go to state 38 
    2777     arbitrary_call     go to state 39 
    2778     print_keyword      go to state 40 
    2779     list_symbol        go to state 41 
    2780     primitive          go to state 42 
     2853   51 struct_if: "if" '(' expression ')' '{' . procedure '}' 
     2854 
     2855    "object"    shift, and go to state 4 
     2856    "defun"     shift, and go to state 5 
     2857    "break"     shift, and go to state 6 
     2858    "conintue"  shift, and go to state 7 
     2859    "return"    shift, and go to state 8 
     2860    "delete"    shift, and go to state 9 
     2861    "while"     shift, and go to state 10 
     2862    "for"       shift, and go to state 11 
     2863    "new"       shift, and go to state 12 
     2864    "if"        shift, and go to state 13 
     2865    "print"     shift, and go to state 14 
     2866    "true"      shift, and go to state 15 
     2867    "false"     shift, and go to state 16 
     2868    "nil"       shift, and go to state 17 
     2869    CHAR        shift, and go to state 18 
     2870    STRING      shift, and go to state 19 
     2871    INTEGER     shift, and go to state 20 
     2872    DOUBLE      shift, and go to state 21 
     2873    IDENTIFIER  shift, and go to state 22 
     2874    '-'         shift, and go to state 23 
     2875    '['         shift, and go to state 24 
     2876    '('         shift, and go to state 25 
     2877 
     2878    class_definition     go to state 26 
     2879    object_creation      go to state 27 
     2880    dot_accessor         go to state 28 
     2881    member_accessor      go to state 29 
     2882    accessor             go to state 30 
     2883    symbol_accessor      go to state 31 
     2884    function_definition  go to state 32 
     2885    expression           go to state 33 
     2886    express              go to state 34 
     2887    procedure            go to state 166 
     2888    pblock               go to state 135 
     2889    loop_while           go to state 35 
     2890    loop_for             go to state 36 
     2891    control_structure    go to state 37 
     2892    struct_if            go to state 38 
     2893    conditionals         go to state 39 
     2894    statement            go to state 136 
     2895    delete_keyword       go to state 41 
     2896    continue_keyword     go to state 42 
     2897    break_keyword        go to state 43 
     2898    return_keyword       go to state 44 
     2899    arbitrary_call       go to state 45 
     2900    print_keyword        go to state 46 
     2901    list_symbol          go to state 47 
     2902    primitive            go to state 48 
    27812903 
    27822904 
    27832905state 159 
    27842906 
    2785    48 struct_else: ELSE '{' procedure '}' . 
    2786  
    2787     $default  reduce using rule 48 (struct_else) 
     2907   52 struct_elif: "elif" '(' expression ')' . '{' procedure '}' 
     2908 
     2909    '{'  shift, and go to state 167 
    27882910 
    27892911 
    27902912state 160 
    27912913 
    2792    12 function_definition: DEFUN IDENTIFIER '(' ')' '{' procedure '}' . 
    2793  
    2794     $default  reduce using rule 12 (function_definition) 
     2914   53 struct_else: "else" '{' procedure . '}' 
     2915 
     2916    '}'  shift, and go to state 168 
    27952917 
    27962918 
    27972919state 161 
    27982920 
    2799    13 function_definition: DEFUN IDENTIFIER '(' parameters ')' '{' procedure . '}' 
    2800  
    2801     '}'  shift, and go to state 166 
     2921   15 function_definition: "defun" IDENTIFIER '(' ')' '{' procedure . '}' 
     2922 
     2923    '}'  shift, and go to state 169 
    28022924 
    28032925 
    28042926state 162 
    28052927 
    2806    41 loop_while: WHILE '(' expression ')' '{' procedure '}' . 
    2807  
    2808     $default  reduce using rule 41 (loop_while) 
     2928   76 parameters_expression: parameters_expression ',' IDENTIFIER . 
     2929 
     2930    $default  reduce using rule 76 (parameters_expression) 
    28092931 
    28102932 
    28112933state 163 
    28122934 
    2813    42 loop_for: FOR '(' expression ';' expression ';' expression . ')' '{' procedure '}' 
    2814  
    2815     ')'  shift, and go to state 167 
     2935   16 function_definition: "defun" IDENTIFIER '(' parameters ')' '{' . procedure '}' 
     2936 
     2937    "object"    shift, and go to state 4 
     2938    "defun"     shift, and go to state 5 
     2939    "break"     shift, and go to state 6 
     2940    "conintue"  shift, and go to state 7 
     2941    "return"    shift, and go to state 8 
     2942    "delete"    shift, and go to state 9 
     2943    "while"     shift, and go to state 10 
     2944    "for"       shift, and go to state 11 
     2945    "new"       shift, and go to state 12 
     2946    "if"        shift, and go to state 13 
     2947    "print"     shift, and go to state 14 
     2948    "true"      shift, and go to state 15 
     2949    "false"     shift, and go to state 16 
     2950    "nil"       shift, and go to state 17 
     2951    CHAR        shift, and go to state 18 
     2952    STRING      shift, and go to state 19 
     2953    INTEGER     shift, and go to state 20 
     2954    DOUBLE      shift, and go to state 21 
     2955    IDENTIFIER  shift, and go to state 22 
     2956    '-'         shift, and go to state 23 
     2957    '['         shift, and go to state 24 
     2958    '('         shift, and go to state 25 
     2959 
     2960    class_definition     go to state 26 
     2961    object_creation      go to state 27 
     2962    dot_accessor         go to state 28 
     2963    member_accessor      go to state 29 
     2964    accessor             go to state 30 
     2965    symbol_accessor      go to state 31 
     2966    function_definition  go to state 32 
     2967    expression           go to state 33 
     2968    express              go to state 34 
     2969    procedure            go to state 170 
     2970    pblock               go to state 135 
     2971    loop_while           go to state 35 
     2972    loop_for             go to state 36 
     2973    control_structure    go to state 37 
     2974    struct_if            go to state 38 
     2975    conditionals         go to state 39 
     2976    statement            go to state 136 
     2977    delete_keyword       go to state 41 
     2978    continue_keyword     go to state 42 
     2979    break_keyword        go to state 43 
     2980    return_keyword       go to state 44 
     2981    arbitrary_call       go to state 45 
     2982    print_keyword        go to state 46 
     2983    list_symbol          go to state 47 
     2984    primitive            go to state 48 
    28162985 
    28172986 
    28182987state 164 
    28192988 
    2820    46 struct_if: IF '(' expression ')' '{' procedure '}' . 
    2821  
    2822     $default  reduce using rule 46 (struct_if) 
     2989   44 loop_while: "while" '(' expression ')' '{' procedure . '}' 
     2990 
     2991    '}'  shift, and go to state 171 
    28232992 
    28242993 
    28252994state 165 
    28262995 
    2827    47 struct_elif: ELIF '(' expression ')' '{' procedure . '}' 
    2828  
    2829     '}'  shift, and go to state 168 
     2996   45 loop_for: "for" '(' expression ';' expression ';' . expression ')' '{' procedure '}' 
     2997 
     2998    "new"       shift, and go to state 12 
     2999    "true"      shift, and go to state 15 
     3000    "false"     shift, and go to state 16 
     3001    "nil"       shift, and go to state 17 
     3002    CHAR        shift, and go to state 18 
     3003    STRING      shift, and go to state 19 
     3004    INTEGER     shift, and go to state 20 
     3005    DOUBLE      shift, and go to state 21 
     3006    IDENTIFIER  shift, and go to state 22 
     3007    '-'         shift, and go to state 23 
     3008    '['         shift, and go to state 24 
     3009    '('         shift, and go to state 25 
     3010 
     3011    object_creation  go to state 27 
     3012    dot_accessor     go to state 28 
     3013    member_accessor  go to state 29 
     3014    accessor         go to state 30 
     3015    symbol_accessor  go to state 31 
     3016    expression       go to state 172 
     3017    express          go to state 34 
     3018    arbitrary_call   go to state 45 
     3019    list_symbol      go to state 47 
     3020    primitive        go to state 48 
    28303021 
    28313022 
    28323023state 166 
    28333024 
    2834    13 function_definition: DEFUN IDENTIFIER '(' parameters ')' '{' procedure '}' . 
    2835  
    2836     $default  reduce using rule 13 (function_definition) 
     3025   51 struct_if: "if" '(' expression ')' '{' procedure . '}' 
     3026 
     3027    '}'  shift, and go to state 173 
    28373028 
    28383029 
    28393030state 167 
    28403031 
    2841    42 loop_for: FOR '(' expression ';' expression ';' expression ')' . '{' procedure '}' 
    2842  
    2843     '{'  shift, and go to state 169 
     3032   52 struct_elif: "elif" '(' expression ')' '{' . procedure '}' 
     3033 
     3034    "object"    shift, and go to state 4 
     3035    "defun"     shift, and go to state 5 
     3036    "break"     shift, and go to state 6 
     3037    "conintue"  shift, and go to state 7 
     3038    "return"    shift, and go to state 8 
     3039    "delete"    shift, and go to state 9 
     3040    "while"     shift, and go to state 10 
     3041    "for"       shift, and go to state 11 
     3042    "new"       shift, and go to state 12 
     3043    "if"        shift, and go to state 13 
     3044    "print"     shift, and go to state 14 
     3045    "true"      shift, and go to state 15 
     3046    "false"     shift, and go to state 16 
     3047    "nil"       shift, and go to state 17 
     3048    CHAR        shift, and go to state 18 
     3049    STRING      shift, and go to state 19 
     3050    INTEGER     shift, and go to state 20 
     3051    DOUBLE      shift, and go to state 21 
     3052    IDENTIFIER  shift, and go to state 22 
     3053    '-'         shift, and go to state 23 
     3054    '['         shift, and go to state 24 
     3055    '('         shift, and go to state 25 
     3056 
     3057    class_definition     go to state 26 
     3058    object_creation      go to state 27 
     3059    dot_accessor         go to state 28 
     3060    member_accessor      go to state 29 
     3061    accessor             go to state 30 
     3062    symbol_accessor      go to state 31 
     3063    function_definition  go to state 32 
     3064    expression           go to state 33 
     3065    express              go to state 34 
     3066    procedure            go to state 174 
     3067    pblock               go to state 135 
     3068    loop_while           go to state 35 
     3069    loop_for             go to state 36 
     3070    control_structure    go to state 37 
     3071    struct_if            go to state 38 
     3072    conditionals         go to state 39 
     3073    statement            go to state 136 
     3074    delete_keyword       go to state 41 
     3075    continue_keyword     go to state 42 
     3076    break_keyword        go to state 43 
     3077    return_keyword       go to state 44 
     3078    arbitrary_call       go to state 45 
     3079    print_keyword        go to state 46 
     3080    list_symbol          go to state 47 
     3081    primitive            go to state 48 
    28443082 
    28453083 
    28463084state 168 
    28473085 
    2848    47 struct_elif: ELIF '(' expression ')' '{' procedure '}' . 
    2849  
    2850     $default  reduce using rule 47 (struct_elif) 
     3086   53 struct_else: "else" '{' procedure '}' . 
     3087 
     3088    $default  reduce using rule 53 (struct_else) 
    28513089 
    28523090 
    28533091state 169 
    28543092 
    2855    42 loop_for: FOR '(' expression ';' expression ';' expression ')' '{' . procedure '}' 
    2856  
    2857     BREAK       shift, and go to state 5 
    2858     CONTINUE    shift, and go to state 6 
    2859     RETURN      shift, and go to state 7 
    2860     DELETE      shift, and go to state 8 
    2861     WHILE       shift, and go to state 9 
    2862     FOR         shift, and go to state 10 
    2863     IF          shift, and go to state 11 
    2864     PRINT       shift, and go to state 12 
    2865     TRUE        shift, and go to state 13 
    2866     FALSE       shift, and go to state 14 
    2867     NIL         shift, and go to state 15 
    2868     CHAR        shift, and go to state 16 
    2869     STRING      shift, and go to state 17 
    2870     INTEGER     shift, and go to state 18 
    2871     DOUBLE      shift, and go to state 19 
    2872     IDENTIFIER  shift, and go to state 20 
    2873     '-'         shift, and go to state 21 
    2874     '('         shift, and go to state 22 
    2875     '['         shift, and go to state 23 
    2876  
    2877     member_accessor    go to state 24 
    2878     symbol_accessor    go to state 25 
    2879     expression         go to state 27 
    2880     express            go to state 28 
    2881     procedure          go to state 170 
    2882     pblock             go to state 128 
    2883     loop_while         go to state 29 
    2884     loop_for           go to state 30 
    2885     control_structure  go to state 31 
    2886     struct_if          go to state 32 
    2887     conditionals       go to state 33 
    2888     statement          go to state 129 
    2889     delete_keyword     go to state 35 
    2890     continue_keyword   go to state 36 
    2891     break_keyword      go to state 37 
    2892     return_keyword     go to state 38 
    2893     arbitrary_call     go to state 39 
    2894     print_keyword      go to state 40 
    2895     list_symbol        go to state 41 
    2896     primitive          go to state 42 
     3093   15 function_definition: "defun" IDENTIFIER '(' ')' '{' procedure '}' . 
     3094 
     3095    $default  reduce using rule 15 (function_definition) 
    28973096 
    28983097 
    28993098state 170 
    29003099 
    2901    42 loop_for: FOR '(' expression ';' expression ';' expression ')' '{' procedure . '}' 
    2902  
    2903     '}'  shift, and go to state 171 
     3100   16 function_definition: "defun" IDENTIFIER '(' parameters ')' '{' procedure . '}' 
     3101 
     3102    '}'  shift, and go to state 175 
    29043103 
    29053104 
    29063105state 171 
    29073106 
    2908    42 loop_for: FOR '(' expression ';' expression ';' expression ')' '{' procedure '}' . 
    2909  
    2910     $default  reduce using rule 42 (loop_for) 
     3107   44 loop_while: "while" '(' expression ')' '{' procedure '}' . 
     3108 
     3109    $default  reduce using rule 44 (loop_while) 
     3110 
     3111 
     3112state 172 
     3113 
     3114   45 loop_for: "for" '(' expression ';' expression ';' expression . ')' '{' procedure '}' 
     3115 
     3116    ')'  shift, and go to state 176 
     3117 
     3118 
     3119state 173 
     3120 
     3121   51 struct_if: "if" '(' expression ')' '{' procedure '}' . 
     3122 
     3123    $default  reduce using rule 51 (struct_if) 
     3124 
     3125 
     3126state 174 
     3127 
     3128   52 struct_elif: "elif" '(' expression ')' '{' procedure . '}' 
     3129 
     3130    '}'  shift, and go to state 177 
     3131 
     3132 
     3133state 175 
     3134 
     3135   16 function_definition: "defun" IDENTIFIER '(' parameters ')' '{' procedure '}' . 
     3136 
     3137    $default  reduce using rule 16 (function_definition) 
     3138 
     3139 
     3140state 176 
     3141 
     3142   45 loop_for: "for" '(' expression ';' expression ';' expression ')' . '{' procedure '}' 
     3143 
     3144    '{'  shift, and go to state 178 
     3145 
     3146 
     3147state 177 
     3148 
     3149   52 struct_elif: "elif" '(' expression ')' '{' procedure '}' . 
     3150 
     3151    $default  reduce using rule 52 (struct_elif) 
     3152 
     3153 
     3154state 178 
     3155 
     3156   45 loop_for: "for" '(' expression ';' expression ';' expression ')' '{' . procedure '}' 
     3157 
     3158    "object"    shift, and go to state 4 
     3159    "defun"     shift, and go to state 5 
     3160    "break"     shift, and go to state 6 
     3161    "conintue"  shift, and go to state 7 
     3162    "return"    shift, and go to state 8 
     3163    "delete"    shift, and go to state 9 
     3164    "while"     shift, and go to state 10 
     3165    "for"       shift, and go to state 11 
     3166    "new"       shift, and go to state 12 
     3167    "if"        shift, and go to state 13 
     3168    "print"     shift, and go to state 14 
     3169    "true"      shift, and go to state 15 
     3170    "false"     shift, and go to state 16 
     3171    "nil"       shift, and go to state 17 
     3172    CHAR        shift, and go to state 18 
     3173    STRING      shift, and go to state 19 
     3174    INTEGER     shift, and go to state 20 
     3175    DOUBLE      shift, and go to state 21 
     3176    IDENTIFIER  shift, and go to state 22 
     3177    '-'         shift, and go to state 23 
     3178    '['         shift, and go to state 24 
     3179    '('         shift, and go to state 25 
     3180 
     3181    class_definition     go to state 26 
     3182    object_creation      go to state 27 
     3183    dot_accessor         go to state 28 
     3184    member_accessor      go to state 29 
     3185    accessor             go to state 30 
     3186    symbol_accessor      go to state 31 
     3187    function_definition  go to state 32 
     3188    expression           go to state 33 
     3189    express              go to state 34 
     3190    procedure            go to state 179 
     3191    pblock               go to state 135 
     3192    loop_while           go to state 35 
     3193    loop_for             go to state 36 
     3194    control_structure    go to state 37 
     3195    struct_if            go to state 38 
     3196    conditionals         go to state 39 
     3197    statement            go to state 136 
     3198    delete_keyword       go to state 41 
     3199    continue_keyword     go to state 42 
     3200    break_keyword        go to state 43 
     3201    return_keyword       go to state 44 
     3202    arbitrary_call       go to state 45 
     3203    print_keyword        go to state 46 
     3204    list_symbol          go to state 47 
     3205    primitive            go to state 48 
     3206 
     3207 
     3208state 179 
     3209 
     3210   45 loop_for: "for" '(' expression ';' expression ';' expression ')' '{' procedure . '}' 
     3211 
     3212    '}'  shift, and go to state 180 
     3213 
     3214 
     3215state 180 
     3216 
     3217   45 loop_for: "for" '(' expression ';' expression ';' expression ')' '{' procedure '}' . 
     3218 
     3219    $default  reduce using rule 45 (loop_for)