-
Notifications
You must be signed in to change notification settings - Fork 0
/
parsetab.py
103 lines (96 loc) · 26.5 KB
/
parsetab.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'
_lr_method = 'LALR'
_lr_signature = 'leftPLUSMINUSleftTIMESDIVIDEFDIVIDEMODULOPOWERifIFleftELSErightUMINUSAND ARRLEN ASSIGN COMMA COMMENT DIVIDE ELSE ENDELSE ENDIF ENDPRINT ENDPUSH ENDWHILE EQUALS FDIVIDE FLOAT FLOATDEC GREATER GREATEREQ IF INPUTDEC INT INTDEC ISEMPTY LBRACKET LESS LESSEQ LPAREN LZDIGIT LZWORD MINUS MODULO NAME NEWLINE NOT NOTEQ OR PLUS POP POWER PRINT PRINTARRAY PUSH RBRACKET RPAREN STRING STRINGDEC TIMES TOP WHILE start : statements statements : statements statement\n | statement statement : var_dec\n | if_statement\n | ifel_statement\n | wh_statement\n | ip_statement\n | pr_statement\n | assign_expr\n | arr_push\n | arr_print\n | new_lineassign_expr : NAME ASSIGN expression var_dec : var_dec_st\n | var_dec_in\n | var_dec_fl\n | arr_decvar_dec_st : NAME ASSIGN STRINGDEC STRINGvar_dec_in : NAME ASSIGN INTDEC expressionvar_dec_fl : NAME ASSIGN FLOATDEC expressionarr_dec : NAME ASSIGN LBRACKET arr_param RBRACKET\n | NAME ASSIGN LBRACKET RBRACKETarr_param : arr_param COMMA arr_thing\n | arr_thing arr_thing : STRING\n | expressionip_statement : INPUTDEC NAMEpr_statement : PRINT outputblock ENDPRINTnew_line : NEWLINEoutputblock : outputblock expression\n | outputblock STRING\n | outputblock comparison\n | outputblock LZDIGIT\n | expression\n | STRING\n | comparison\n | LZDIGITif_statement : IF LBRACKET comparison RBRACKET statements ENDIFifel_statement : IF LBRACKET comparison RBRACKET statements ENDIF ELSE statements ENDELSEwh_statement : WHILE LBRACKET comparison RBRACKET statements ENDWHILEcomparison : arr_emptycomparison : LBRACKET comparison RBRACKETcomparison : expression EQUALS expression\n | expression NOTEQ expression\n | expression GREATER expression\n | expression LESS expression\n | expression GREATEREQ expression\n | expression LESSEQ expressioncomparison : comparison AND comparisoncomparison : comparison OR comparisoncomparison : NOT comparisonexpression : expression PLUS expression\n | expression MINUS expression\n | expression TIMES expression\n | expression FDIVIDE expression\n | expression DIVIDE expression\n | expression MODULO expression\n | expression POWER expressionexpression : LPAREN expression RPARENexpression : MINUS expression %prec UMINUSexpression : INT\n | FLOAT\n | LZWORDexpression : NAMEexpression : NAME LBRACKET expression RBRACKETarr_push : PUSH NAME expression ENDPUSHarr_print : PRINTARRAY NAMEexpression : POP NAMEexpression : TOP NAMEarr_empty : ISEMPTY NAMEexpression : ARRLEN NAMEstatement : NAME LBRACKET expression RBRACKET ASSIGN expression'
_lr_action_items = {'FDIVIDE':([38,40,41,42,44,52,54,55,60,61,63,64,83,85,90,92,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,129,],[-64,-65,-62,-63,69,-70,69,-61,69,-69,-72,69,69,69,69,-60,69,-56,-58,-57,-59,69,69,69,-55,69,69,69,69,69,69,69,69,-66,69,]),'LESS':([38,40,41,42,44,52,54,55,60,61,63,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,73,-70,73,-61,73,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'NOTEQ':([38,40,41,42,44,52,54,55,60,61,63,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,74,-70,74,-61,74,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'TOP':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[27,-42,27,27,-36,27,-38,27,-64,-37,-65,-62,-63,27,-35,27,27,27,27,27,-70,-61,-32,-34,-33,-31,-69,-71,-72,27,27,27,-52,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,27,27,]),'LBRACKET':([4,5,21,22,28,29,31,32,33,38,39,40,41,42,43,44,45,48,50,52,55,56,57,59,60,61,62,63,65,66,68,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[29,45,48,49,-42,29,-36,29,-38,-64,-37,67,-62,-63,29,-35,29,29,86,-70,-61,-32,-34,-33,-31,-69,-71,-72,29,29,-52,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),'ENDPUSH':([38,40,41,42,52,55,61,63,83,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,-70,-61,-69,-72,110,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'WHILE':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[5,5,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,5,-67,5,-23,-20,-21,-19,-66,5,5,-22,-41,-39,-73,5,5,-40,]),'INPUTDEC':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[6,6,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,6,-67,6,-23,-20,-21,-19,-66,6,6,-22,-41,-39,-73,6,6,-40,]),'GREATER':([38,40,41,42,44,52,54,55,60,61,63,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,81,-70,81,-61,81,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'PRINT':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[4,4,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,4,-67,4,-23,-20,-21,-19,-66,4,4,-22,-41,-39,-73,4,4,-40,]),'INTDEC':([50,],[87,]),'MINUS':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,54,55,56,57,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,85,86,87,88,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,124,125,129,],[30,-42,30,30,-36,30,-38,30,-64,-37,-65,-62,-63,30,80,30,30,30,30,30,-70,80,-61,-32,-34,-33,80,-69,-71,-72,80,30,30,30,-52,30,30,30,30,30,30,30,30,30,30,30,30,30,80,80,30,30,30,80,-43,-60,-50,-51,80,-56,-58,-57,-59,80,80,80,-55,80,80,-53,-54,80,80,80,80,-66,30,30,80,]),'DIVIDE':([38,40,41,42,44,52,54,55,60,61,63,64,83,85,90,92,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,129,],[-64,-65,-62,-63,71,-70,71,-61,71,-69,-72,71,71,71,71,-60,71,-56,-58,-57,-59,71,71,71,-55,71,71,71,71,71,71,71,71,-66,71,]),'RPAREN':([38,40,41,42,52,55,61,63,64,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,-70,-61,-69,-72,92,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'POWER':([38,40,41,42,44,52,54,55,60,61,63,64,83,85,90,92,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,129,],[-64,-65,-62,-63,72,-70,72,-61,72,-69,-72,72,72,72,72,-60,72,-56,-58,-57,-59,72,72,72,-55,72,72,72,72,72,72,72,72,-66,72,]),'LZDIGIT':([4,28,31,32,33,38,39,40,41,42,44,52,55,56,57,59,60,61,62,63,68,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[33,-42,-36,57,-38,-64,-37,-65,-62,-63,-35,-70,-61,-32,-34,-33,-31,-69,-71,-72,-52,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),'NEWLINE':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[11,11,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,11,-67,11,-23,-20,-21,-19,-66,11,11,-22,-41,-39,-73,11,11,-40,]),'POP':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[34,-42,34,34,-36,34,-38,34,-64,-37,-65,-62,-63,34,-35,34,34,34,34,34,-70,-61,-32,-34,-33,-31,-69,-71,-72,34,34,34,-52,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,34,34,]),'GREATEREQ':([38,40,41,42,44,52,54,55,60,61,63,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,77,-70,77,-61,77,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'ISEMPTY':([4,28,29,31,32,33,38,39,40,41,42,43,44,45,48,52,55,56,57,59,60,61,62,63,65,66,68,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[35,-42,35,-36,35,-38,-64,-37,-65,-62,-63,35,-35,35,35,-70,-61,-32,-34,-33,-31,-69,-71,-72,35,35,-52,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),'ENDELSE':([2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,110,116,118,119,120,121,126,127,128,129,132,133,],[-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,-67,-23,-20,-21,-19,-66,-22,-41,-39,-73,133,-40,]),'PUSH':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[16,16,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,16,-67,16,-23,-20,-21,-19,-66,16,16,-22,-41,-39,-73,16,16,-40,]),'PLUS':([38,40,41,42,44,52,54,55,60,61,63,64,83,85,90,92,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,129,],[-64,-65,-62,-63,79,-70,79,-61,79,-69,-72,79,79,79,79,-60,79,-56,-58,-57,-59,79,79,79,-55,79,79,-53,-54,79,79,79,79,-66,79,]),'ASSIGN':([22,112,],[50,124,]),'$end':([1,2,3,7,8,9,10,11,12,13,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,110,116,118,119,120,121,126,127,128,129,133,],[-1,-11,-7,-12,-15,-8,-4,-30,-17,0,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,-67,-23,-20,-21,-19,-66,-22,-41,-39,-73,-40,]),'ENDPRINT':([28,31,32,33,38,39,40,41,42,44,52,55,56,57,59,60,61,62,63,68,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[-42,-36,58,-38,-64,-37,-65,-62,-63,-35,-70,-61,-32,-34,-33,-31,-69,-71,-72,-52,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),'MODULO':([38,40,41,42,44,52,54,55,60,61,63,64,83,85,90,92,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,129,],[-64,-65,-62,-63,70,-70,70,-61,70,-69,-72,70,70,70,70,-60,70,-56,-58,-57,-59,70,70,70,-55,70,70,70,70,70,70,70,70,-66,70,]),'STRING':([4,28,31,32,33,38,39,40,41,42,44,52,55,56,57,59,60,61,62,63,68,86,89,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,125,],[31,-42,-36,56,-38,-64,-37,-65,-62,-63,-35,-70,-61,-32,-34,-33,-31,-69,-71,-72,-52,113,120,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,113,]),'FLOATDEC':([50,],[88,]),'EQUALS':([38,40,41,42,44,52,54,55,60,61,63,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,75,-70,75,-61,75,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'TIMES':([38,40,41,42,44,52,54,55,60,61,63,64,83,85,90,92,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,121,129,],[-64,-65,-62,-63,76,-70,76,-61,76,-69,-72,76,76,76,76,-60,76,-56,-58,-57,-59,76,76,76,-55,76,76,76,76,76,76,76,76,-66,76,]),'ARRLEN':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[36,-42,36,36,-36,36,-38,36,-64,-37,-65,-62,-63,36,-35,36,36,36,36,36,-70,-61,-32,-34,-33,-31,-69,-71,-72,36,36,36,-52,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,36,36,]),'LPAREN':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[37,-42,37,37,-36,37,-38,37,-64,-37,-65,-62,-63,37,-35,37,37,37,37,37,-70,-61,-32,-34,-33,-31,-69,-71,-72,37,37,37,-52,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,37,37,]),'ENDIF':([2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,110,116,118,119,120,121,123,126,127,128,129,133,],[-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,-67,-23,-20,-21,-19,-66,128,-22,-41,-39,-73,-40,]),'ELSE':([128,],[131,]),'LZWORD':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[38,-42,38,38,-36,38,-38,38,-64,-37,-65,-62,-63,38,-35,38,38,38,38,38,-70,-61,-32,-34,-33,-31,-69,-71,-72,38,38,38,-52,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,38,38,]),'IF':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[21,21,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,21,-67,21,-23,-20,-21,-19,-66,21,21,-22,-41,-39,-73,21,21,-40,]),'AND':([28,38,39,40,41,42,52,53,55,59,61,62,63,68,82,84,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[-42,-64,65,-65,-62,-63,-70,65,-61,65,-69,-71,-72,65,65,65,-43,-60,65,65,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),'ENDWHILE':([2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,110,116,118,119,120,121,122,126,127,128,129,133,],[-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,-67,-23,-20,-21,-19,-66,127,-22,-41,-39,-73,-40,]),'NAME':([0,1,2,3,4,6,7,8,9,10,11,12,14,15,16,17,18,19,20,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,90,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,116,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,],[22,22,-11,-7,40,46,-12,-15,-8,-4,-30,-17,-10,-3,47,-5,-6,-9,-13,-16,51,-18,-2,52,-42,40,40,-36,40,-38,61,62,63,40,-64,-37,-65,-62,-63,40,-35,40,-28,40,40,40,40,-68,-70,-61,-32,-34,-29,-33,-31,-69,-71,-72,40,40,40,-52,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,-14,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,22,-67,22,-23,-20,-21,-19,-66,22,22,40,40,-22,-41,-39,-73,22,22,-40,]),'PRINTARRAY':([0,1,2,3,7,8,9,10,11,12,14,15,17,18,19,20,23,25,26,38,40,41,42,46,51,52,55,58,61,63,90,92,96,97,98,99,103,106,107,109,110,111,116,118,119,120,121,122,123,126,127,128,129,131,132,133,],[24,24,-11,-7,-12,-15,-8,-4,-30,-17,-10,-3,-5,-6,-9,-13,-16,-18,-2,-64,-65,-62,-63,-28,-68,-70,-61,-29,-69,-72,-14,-60,-56,-58,-57,-59,-55,-53,-54,24,-67,24,-23,-20,-21,-19,-66,24,24,-22,-41,-39,-73,24,24,-40,]),'INT':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[41,-42,41,41,-36,41,-38,41,-64,-37,-65,-62,-63,41,-35,41,41,41,41,41,-70,-61,-32,-34,-33,-31,-69,-71,-72,41,41,41,-52,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,41,41,]),'FLOAT':([4,28,29,30,31,32,33,37,38,39,40,41,42,43,44,45,47,48,49,50,52,55,56,57,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,124,125,],[42,-42,42,42,-36,42,-38,42,-64,-37,-65,-62,-63,42,-35,42,42,42,42,42,-70,-61,-32,-34,-33,-31,-69,-71,-72,42,42,42,-52,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,42,42,]),'STRINGDEC':([50,],[89,]),'LESSEQ':([38,40,41,42,44,52,54,55,60,61,63,92,96,97,98,99,103,106,107,121,],[-64,-65,-62,-63,78,-70,78,-61,78,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-66,]),'NOT':([4,28,29,31,32,33,38,39,40,41,42,43,44,45,48,52,55,56,57,59,60,61,62,63,65,66,68,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[43,-42,43,-36,43,-38,-64,-37,-65,-62,-63,43,-35,43,43,-70,-61,-32,-34,-33,-31,-69,-71,-72,43,43,-52,-43,-60,-50,-51,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),'RBRACKET':([28,38,40,41,42,52,53,55,61,62,63,68,82,84,85,86,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,113,114,115,117,121,130,],[-42,-64,-65,-62,-63,-70,91,-61,-69,-71,-72,-52,109,111,112,116,-43,-60,-50,-51,121,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-26,126,-25,-27,-66,-24,]),'COMMA':([38,40,41,42,52,55,61,63,92,96,97,98,99,103,106,107,113,114,115,117,121,130,],[-64,-65,-62,-63,-70,-61,-69,-72,-60,-56,-58,-57,-59,-55,-53,-54,-26,125,-25,-27,-66,-24,]),'OR':([28,38,39,40,41,42,52,53,55,59,61,62,63,68,82,84,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,121,],[-42,-64,66,-65,-62,-63,-70,66,-61,66,-69,-71,-72,66,66,66,-43,-60,66,66,-56,-58,-57,-59,-47,-45,-44,-55,-48,-49,-53,-54,-46,-66,]),}
_lr_action = {}
for _k, _v in _lr_action_items.items():
for _x,_y in zip(_v[0],_v[1]):
if not _x in _lr_action: _lr_action[_x] = {}
_lr_action[_x][_k] = _y
del _lr_action_items
_lr_goto_items = {'statements':([0,109,111,131,],[1,122,123,132,]),'arr_push':([0,1,109,111,122,123,131,132,],[2,2,2,2,2,2,2,2,]),'wh_statement':([0,1,109,111,122,123,131,132,],[3,3,3,3,3,3,3,3,]),'arr_empty':([4,29,32,43,45,48,65,66,],[28,28,28,28,28,28,28,28,]),'arr_print':([0,1,109,111,122,123,131,132,],[7,7,7,7,7,7,7,7,]),'var_dec_st':([0,1,109,111,122,123,131,132,],[8,8,8,8,8,8,8,8,]),'ip_statement':([0,1,109,111,122,123,131,132,],[9,9,9,9,9,9,9,9,]),'outputblock':([4,],[32,]),'var_dec':([0,1,109,111,122,123,131,132,],[10,10,10,10,10,10,10,10,]),'var_dec_fl':([0,1,109,111,122,123,131,132,],[12,12,12,12,12,12,12,12,]),'start':([0,],[13,]),'assign_expr':([0,1,109,111,122,123,131,132,],[14,14,14,14,14,14,14,14,]),'statement':([0,1,109,111,122,123,131,132,],[15,26,15,15,26,26,15,26,]),'if_statement':([0,1,109,111,122,123,131,132,],[17,17,17,17,17,17,17,17,]),'arr_param':([86,],[114,]),'ifel_statement':([0,1,109,111,122,123,131,132,],[18,18,18,18,18,18,18,18,]),'pr_statement':([0,1,109,111,122,123,131,132,],[19,19,19,19,19,19,19,19,]),'arr_thing':([86,125,],[115,130,]),'new_line':([0,1,109,111,122,123,131,132,],[20,20,20,20,20,20,20,20,]),'comparison':([4,29,32,43,45,48,65,66,],[39,53,59,68,82,84,93,94,]),'var_dec_in':([0,1,109,111,122,123,131,132,],[23,23,23,23,23,23,23,23,]),'arr_dec':([0,1,109,111,122,123,131,132,],[25,25,25,25,25,25,25,25,]),'expression':([4,29,30,32,37,43,45,47,48,49,50,65,66,67,69,70,71,72,73,74,75,76,77,78,79,80,81,86,87,88,124,125,],[44,54,55,60,64,54,54,83,54,85,90,54,54,95,96,97,98,99,100,101,102,103,104,105,106,107,108,117,118,119,129,117,]),}
_lr_goto = {}
for _k, _v in _lr_goto_items.items():
for _x, _y in zip(_v[0], _v[1]):
if not _x in _lr_goto: _lr_goto[_x] = {}
_lr_goto[_x][_k] = _y
del _lr_goto_items
_lr_productions = [
("S' -> start","S'",1,None,None,None),
('start -> statements','start',1,'p_starting_code','cidcompiler.py',227),
('statements -> statements statement','statements',2,'p_statements','cidcompiler.py',234),
('statements -> statement','statements',1,'p_statements','cidcompiler.py',235),
('statement -> var_dec','statement',1,'p_statement','cidcompiler.py',243),
('statement -> if_statement','statement',1,'p_statement','cidcompiler.py',244),
('statement -> ifel_statement','statement',1,'p_statement','cidcompiler.py',245),
('statement -> wh_statement','statement',1,'p_statement','cidcompiler.py',246),
('statement -> ip_statement','statement',1,'p_statement','cidcompiler.py',247),
('statement -> pr_statement','statement',1,'p_statement','cidcompiler.py',248),
('statement -> assign_expr','statement',1,'p_statement','cidcompiler.py',249),
('statement -> arr_push','statement',1,'p_statement','cidcompiler.py',250),
('statement -> arr_print','statement',1,'p_statement','cidcompiler.py',251),
('statement -> new_line','statement',1,'p_statement','cidcompiler.py',252),
('assign_expr -> NAME ASSIGN expression','assign_expr',3,'p_statement_assign','cidcompiler.py',258),
('var_dec -> var_dec_st','var_dec',1,'p_var_dec','cidcompiler.py',264),
('var_dec -> var_dec_in','var_dec',1,'p_var_dec','cidcompiler.py',265),
('var_dec -> var_dec_fl','var_dec',1,'p_var_dec','cidcompiler.py',266),
('var_dec -> arr_dec','var_dec',1,'p_var_dec','cidcompiler.py',267),
('var_dec_st -> NAME ASSIGN STRINGDEC STRING','var_dec_st',4,'p_var_dec_string','cidcompiler.py',272),
('var_dec_in -> NAME ASSIGN INTDEC expression','var_dec_in',4,'p_var_dec_int','cidcompiler.py',277),
('var_dec_fl -> NAME ASSIGN FLOATDEC expression','var_dec_fl',4,'p_var_dec_float','cidcompiler.py',282),
('arr_dec -> NAME ASSIGN LBRACKET arr_param RBRACKET','arr_dec',5,'p_arr_dec','cidcompiler.py',288),
('arr_dec -> NAME ASSIGN LBRACKET RBRACKET','arr_dec',4,'p_arr_dec','cidcompiler.py',289),
('arr_param -> arr_param COMMA arr_thing','arr_param',3,'p_arr_parameters','cidcompiler.py',297),
('arr_param -> arr_thing','arr_param',1,'p_arr_parameters','cidcompiler.py',298),
('arr_thing -> STRING','arr_thing',1,'p_arr_thing','cidcompiler.py',306),
('arr_thing -> expression','arr_thing',1,'p_arr_thing','cidcompiler.py',307),
('ip_statement -> INPUTDEC NAME','ip_statement',2,'p_statement_input','cidcompiler.py',314),
('pr_statement -> PRINT outputblock ENDPRINT','pr_statement',3,'p_statement_print','cidcompiler.py',319),
('new_line -> NEWLINE','new_line',1,'p_statement_newline','cidcompiler.py',324),
('outputblock -> outputblock expression','outputblock',2,'p_outputblock','cidcompiler.py',330),
('outputblock -> outputblock STRING','outputblock',2,'p_outputblock','cidcompiler.py',331),
('outputblock -> outputblock comparison','outputblock',2,'p_outputblock','cidcompiler.py',332),
('outputblock -> outputblock LZDIGIT','outputblock',2,'p_outputblock','cidcompiler.py',333),
('outputblock -> expression','outputblock',1,'p_outputblock','cidcompiler.py',334),
('outputblock -> STRING','outputblock',1,'p_outputblock','cidcompiler.py',335),
('outputblock -> comparison','outputblock',1,'p_outputblock','cidcompiler.py',336),
('outputblock -> LZDIGIT','outputblock',1,'p_outputblock','cidcompiler.py',337),
('if_statement -> IF LBRACKET comparison RBRACKET statements ENDIF','if_statement',6,'p_statement_if','cidcompiler.py',346),
('ifel_statement -> IF LBRACKET comparison RBRACKET statements ENDIF ELSE statements ENDELSE','ifel_statement',9,'p_statement_ifel','cidcompiler.py',351),
('wh_statement -> WHILE LBRACKET comparison RBRACKET statements ENDWHILE','wh_statement',6,'p_statement_while','cidcompiler.py',356),
('comparison -> arr_empty','comparison',1,'p_comparison_empty','cidcompiler.py',364),
('comparison -> LBRACKET comparison RBRACKET','comparison',3,'p_comparison_group','cidcompiler.py',369),
('comparison -> expression EQUALS expression','comparison',3,'p_comparison_binop','cidcompiler.py',374),
('comparison -> expression NOTEQ expression','comparison',3,'p_comparison_binop','cidcompiler.py',375),
('comparison -> expression GREATER expression','comparison',3,'p_comparison_binop','cidcompiler.py',376),
('comparison -> expression LESS expression','comparison',3,'p_comparison_binop','cidcompiler.py',377),
('comparison -> expression GREATEREQ expression','comparison',3,'p_comparison_binop','cidcompiler.py',378),
('comparison -> expression LESSEQ expression','comparison',3,'p_comparison_binop','cidcompiler.py',379),
('comparison -> comparison AND comparison','comparison',3,'p_comparison_and','cidcompiler.py',384),
('comparison -> comparison OR comparison','comparison',3,'p_comparison_or','cidcompiler.py',389),
('comparison -> NOT comparison','comparison',2,'p_comparison_not','cidcompiler.py',394),
('expression -> expression PLUS expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',401),
('expression -> expression MINUS expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',402),
('expression -> expression TIMES expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',403),
('expression -> expression FDIVIDE expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',404),
('expression -> expression DIVIDE expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',405),
('expression -> expression MODULO expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',406),
('expression -> expression POWER expression','expression',3,'p_expression_binaryoperators','cidcompiler.py',407),
('expression -> LPAREN expression RPAREN','expression',3,'p_groupedexpression','cidcompiler.py',412),
('expression -> MINUS expression','expression',2,'p_expression_uminus','cidcompiler.py',417),
('expression -> INT','expression',1,'p_expression_number','cidcompiler.py',422),
('expression -> FLOAT','expression',1,'p_expression_number','cidcompiler.py',423),
('expression -> LZWORD','expression',1,'p_expression_number','cidcompiler.py',424),
('expression -> NAME','expression',1,'p_expression_name','cidcompiler.py',429),
('expression -> NAME LBRACKET expression RBRACKET','expression',4,'p_arr_access','cidcompiler.py',435),
('arr_push -> PUSH NAME expression ENDPUSH','arr_push',4,'p_arr_push','cidcompiler.py',440),
('arr_print -> PRINTARRAY NAME','arr_print',2,'p_arr_print','cidcompiler.py',445),
('expression -> POP NAME','expression',2,'p_arr_pop','cidcompiler.py',450),
('expression -> TOP NAME','expression',2,'p_arr_top','cidcompiler.py',455),
('arr_empty -> ISEMPTY NAME','arr_empty',2,'p_arr_empty','cidcompiler.py',460),
('expression -> ARRLEN NAME','expression',2,'p_arr_len','cidcompiler.py',465),
('statement -> NAME LBRACKET expression RBRACKET ASSIGN expression','statement',6,'p_arr_update','cidcompiler.py',470),
]