
# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'

_lr_method = 'LALR'

_lr_signature = 'PROGAND CHAR COLON COMMA COMMENT COMPAR CTE_C CTE_F CTE_I CTE_S DESDE DET DIV DOT ENTONCES EQ ESCRIBE FLOAT FUNCION GREATER GREATER_EQ HACER HASTA HAZ ID INT INV LBRACKET LEE LESS LESS_EQ LPAREN LSQ MIENTRAS MINUS MULT NOT_EQ NULL OR PLUS PRINCIPAL PROGRAMA RBRACKET RETURN RPAREN RSQ SEMI_COLON SI SINO TRAN VAR VOIDEMPTY :MAIN : PRINCIPAL r_flush_mem LPAREN RPAREN BLOQUEPROG : r_new_goto PROGRAMA ID SEMI_COLON VARS r_change_local_context FUNCTION r_complete_goto r_change_global_context r_display_var_table MAIN r_display_constVARS : VAR TIPO\n            | EMPTYTIPO : INT r_set_var_type VAR_INT SEMI_COLON TIPO\n            | FLOAT r_set_var_type VAR_TIPO SEMI_COLON TIPO\n            | CHAR r_set_var_type VAR_TIPO SEMI_COLON TIPO\n            | EMPTYVAR_INT : LIST_ID COMMA VAR_INT\n                | ID r_new_variable COMMA VAR_INT\n                | LIST_ID\n                | ID r_new_variableVAR_TIPO : ID r_new_variable COMMA\n                | ID r_new_variableLIST_ID : ID r_new_arr LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr\n                | ID r_new_arr LSQ CTE_I r_new_dim RSQ LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr\n    EXPRESION : TLEVEL_EXPRESION r_new_quadruple EXPRESION_AUXEXPRESION_AUX : COMPAR r_new_operator EXPRESION\n                    | AND r_new_operator EXPRESION\n                    | OR r_new_operator EXPRESION\n                    | EMPTYTLEVEL_EXPRESION : SLEVEL_EXPRESION r_new_quadruple_tlevel TLEVEL_EXPRESION_AUXTLEVEL_EXPRESION_AUX : NOT_EQ r_new_operator TLEVEL_EXPRESION\n                            | GREATER_EQ r_new_operator TLEVEL_EXPRESION\n                            | LESS_EQ r_new_operator TLEVEL_EXPRESION\n                            | GREATER r_new_operator TLEVEL_EXPRESION\n                            | LESS r_new_operator TLEVEL_EXPRESION\n                            | EMPTYSLEVEL_EXPRESION : FLEVEL_EXPRESION r_new_quadruple_slevel SLEVEL_EXPRESION_AUXSLEVEL_EXPRESION_AUX : PLUS r_new_operator SLEVEL_EXPRESION\n                            | MINUS r_new_operator SLEVEL_EXPRESION\n                            | EMPTYFLEVEL_EXPRESION : VALUE_EXPRESION r_new_quadruple_flevel FLEVEL_EXPRESION_AUXFLEVEL_EXPRESION_AUX : MULT r_new_operator FLEVEL_EXPRESION\n                            | DIV r_new_operator FLEVEL_EXPRESION\n                            | EMPTYVALUE_EXPRESION : ID r_new_id\n                    | ID r_new_det DET\n                    | ID r_new_tran TRAN\n                    | ID r_new_inv INV\n                    | ARR\n                    | CONSTANTE \n                    | LLAMADA\n                    | r_new_lparen LPAREN EXPRESION RPAREN r_new_rparen\n    CONSTANTE : CTE_I r_new_c_int\n                | CTE_F r_new_c_float\n                | CTE_C r_new_c_char\n                | CTE_S r_new_c_string\n    BLOQUE : LBRACKET OPCION_BLOQUE RBRACKETOPCION_BLOQUE : LECTURA SEMI_COLON OPCION_BLOQUE\n                    | ESCRITURA SEMI_COLON OPCION_BLOQUE\n                    | LLAMADA SEMI_COLON OPCION_BLOQUE\n                    | IF_STMT OPCION_BLOQUE\n                    | IF_ELSE_STMT OPCION_BLOQUE\n                    | MIENTRAS_CICLO OPCION_BLOQUE\n                    | DESDE_CICLO OPCION_BLOQUE\n                    | ASIGNACION SEMI_COLON OPCION_BLOQUE\n                    | RETURN_STM SEMI_COLON OPCION_BLOQUE\n                    | EMPTY\n    FUNCTION : r_new_function FUNCION TIPO_FUNC r_clear_mem ID r_set_fun_name r_new_vartable LPAREN PARAMETROS RPAREN VARS r_insert_parameters BLOQUE r_end_function FUNCTION \n                | EMPTYTIPO_FUNC : INT r_set_fun_type\n                | FLOAT r_set_fun_type\n                | CHAR r_set_fun_type\n                | VOID r_set_fun_typePARAMETROS : AUX_PARAM\n                | EMPTYARR : ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr\n                | ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr\n    AUX_PARAM : INT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM\n                | FLOAT r_set_var_type  r_insert_type ID r_new_variable NEXT_PARAM\n                | CHAR r_set_var_type r_insert_type ID r_new_variable NEXT_PARAMNEXT_PARAM : COMMA AUX_PARAM\n                    | EMPTY RETURN_STM : RETURN LPAREN EXPRESION RPAREN r_generate_returnDESDE_CICLO : DESDE ID r_new_id_for EQ r_new_operator CTE_I r_new_c_int r_new_equal HASTA CTE_I r_new_c_int r_new_migajita r_compara_for HACER r_new_gotof BLOQUE r_update_for r_new_goto r_complete_gotof r_clear_forMIENTRAS_CICLO : MIENTRAS r_new_migajita LPAREN EXPRESION RPAREN r_new_gotof HAZ BLOQUE r_new_goto r_complete_gotofLECTURA : LEE LPAREN PARAMETRO_LECTURA RPARENPARAMETRO_LECTURA : PARAMETRO_LECTURA_AUX\n                        | EMPTYPARAMETRO_LECTURA_AUX : EXPRESION r_new_read\n                            | EXPRESION r_new_read COMMA PARAMETRO_LECTURA_AUXESCRITURA : ESCRIBE LPAREN PARAMETRO_ESCRITURA RPARENPARAMETRO_ESCRITURA : PARAMETRO_ESCRITURA_AUX\n                            | EMPTYPARAMETRO_ESCRITURA_AUX : EXPRESION r_new_write\n                                | EXPRESION r_new_write COMMA PARAMETRO_ESCRITURA_AUXLLAMADA : ID r_verify_function r_generate_era LPAREN r_new_lparen TIPO_PARAMETROS r_new_rparen RPAREN r_verify_last_parameter r_generate_gosubTIPO_PARAMETROS : TIPO_PARAMETROS_AUX\n                        | EMPTYTIPO_PARAMETROS_AUX : EXPRESION r_verify_parameter\n                            | EXPRESION r_verify_parameter COMMA TIPO_PARAMETROS_AUX\n    IF_STMT : SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_complete_gotofIF_ELSE_STMT : SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_new_goto r_complete_gotof SINO BLOQUE r_complete_gotoASIGNACION : EXPRESION ASIGNACION_AUX r_new_equalASIGNACION_AUX : EQ r_new_operator ASIGNACION\n                    | EMPTY\n    r_new_det :r_new_tran : r_new_inv : r_new_id : r_new_c_int : r_new_c_char : r_new_c_float : r_new_c_string : r_new_lparen : r_new_rparen : r_new_operator : r_new_quadruple_flevel : r_new_quadruple_slevel : r_new_quadruple_tlevel : r_new_quadruple : r_new_equal : r_new_goto : r_complete_goto : r_new_gotof : r_complete_gotof : r_new_migajita : r_new_id_for : r_compara_for : r_update_for : r_clear_for : r_clear_mem : r_new_function : r_insert_type : r_set_fun_type : r_set_fun_name : r_new_vartable : r_insert_parameters : r_end_function : r_flush_mem : r_verify_function : r_generate_era : r_verify_parameter : r_verify_last_parameter : r_generate_gosub : r_generate_return : r_set_var_type : r_new_variable : r_change_local_context : r_change_global_context : r_display_var_table : r_display_const : r_new_arr : r_new_dim : r_generate_arr : r_clear_arr : r_new_read : r_new_write : r_register_arr : r_quad_arr : '
    
_lr_action_items = {'PROGRAMA':([0,2,],[-115,3,]),'$end':([1,55,60,71,116,],[0,-144,-3,-2,-50,]),'ID':([3,11,12,13,18,19,20,30,31,32,33,34,36,43,44,45,46,47,50,72,76,77,78,85,86,87,88,99,112,113,114,116,117,118,119,124,125,126,127,134,135,137,142,151,152,153,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[4,-139,-139,-139,25,27,27,-124,-127,-127,-127,-127,25,57,-63,-64,-65,-66,25,94,-139,-139,-139,94,94,94,94,140,-126,-126,-126,-50,94,94,94,94,94,164,164,164,164,-109,164,203,204,205,-107,164,164,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,-118,164,-107,-94,-115,164,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'SEMI_COLON':([4,23,24,25,26,27,28,37,40,49,53,58,66,70,80,82,83,84,89,90,94,97,100,102,103,104,105,106,107,108,109,110,129,136,138,141,143,144,145,146,147,148,149,154,164,165,171,172,173,177,182,186,187,193,194,197,198,201,206,207,209,213,215,218,235,240,244,245,246,247,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[5,35,-12,-140,39,-140,41,-13,-15,-10,-14,-11,-147,-148,-16,117,118,119,124,125,-102,-1,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-114,-98,-46,-1,-1,-1,-1,-47,-48,-49,-147,-102,-44,-39,-40,-41,-96,-18,-22,-23,-29,-30,-33,-34,-37,-148,-79,-84,-108,-97,-138,-17,-45,-76,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'VAR':([5,111,],[7,7,]),'PRINCIPAL':([5,6,7,8,9,10,14,15,17,21,29,35,39,41,42,48,52,54,116,231,257,273,],[-1,-141,-1,-5,-1,-4,-9,-116,-62,-142,-143,-1,-1,-1,56,-6,-7,-8,-50,-131,-1,-61,]),'FUNCION':([5,6,7,8,9,10,14,16,35,39,41,48,52,54,116,231,257,],[-1,-141,-1,-5,-125,-4,-9,22,-1,-1,-1,-6,-7,-8,-50,-131,-125,]),'INT':([7,22,35,39,41,68,259,],[11,31,11,11,11,76,76,]),'FLOAT':([7,22,35,39,41,68,259,],[12,32,12,12,12,77,77,]),'CHAR':([7,22,35,39,41,68,259,],[13,33,13,13,13,78,78,]),'LBRACKET':([7,8,10,14,35,39,41,48,52,54,67,111,150,202,270,279,297,308,309,],[-1,-5,-4,-9,-1,-1,-1,-6,-7,-8,72,-1,-130,72,72,72,72,-117,72,]),'VOID':([22,],[34,]),'COMMA':([24,25,27,37,40,66,70,80,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,154,163,164,165,169,171,172,173,182,186,187,193,194,197,198,201,203,204,205,206,208,210,213,232,233,234,235,240,245,246,247,248,249,250,251,252,253,254,255,256,268,276,277,281,284,289,295,303,306,],[36,-140,-140,50,53,-147,-148,-16,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,-1,-1,-1,-1,-47,-48,-49,-147,-149,-102,-44,-150,-39,-40,-41,-18,-22,-23,-29,-30,-33,-34,-37,-140,-140,-140,-148,236,237,-108,259,259,259,-17,-45,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-135,282,-152,-136,-69,-137,-89,-152,-70,]),'LSQ':([25,38,66,94,133,164,277,],[-145,51,69,-151,174,-151,283,]),'CTE_I':([51,69,72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,217,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,243,278,282,283,285,287,291,293,294,298,301,304,310,311,312,313,314,],[59,79,100,100,100,100,100,-50,100,100,100,100,100,100,100,100,100,-109,100,-107,100,100,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,100,-109,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,272,-118,100,-107,-94,-115,100,-118,299,-78,-116,-95,-122,-115,-118,-123,-77,]),'LPAREN':([56,57,61,62,65,72,85,86,87,88,92,93,94,95,96,98,101,116,117,118,119,124,125,126,127,128,134,135,137,139,142,164,170,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[-132,-128,64,-129,68,-107,-107,-107,-107,-107,126,127,-133,134,135,-119,142,-50,-107,-107,-107,-107,-107,-107,-107,-134,-107,-107,-109,179,-107,-133,211,-107,-107,-107,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-118,-107,-107,-94,-115,-107,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'RSQ':([59,63,79,100,104,105,106,107,108,109,110,115,129,141,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,239,240,253,254,255,256,269,277,281,284,289,295,296,300,303,306,],[-146,66,-146,-103,-111,-110,-42,-43,-105,-104,-106,154,-38,-46,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-108,-45,-31,-32,-35,-36,277,-152,-136,-69,-137,-89,-108,303,-152,-70,]),'RPAREN':([64,68,73,74,75,100,102,103,104,105,106,107,108,109,110,126,127,129,141,143,144,145,146,147,148,149,160,161,162,163,164,165,166,167,168,169,171,172,173,175,176,181,182,186,187,193,194,197,198,201,203,204,205,208,210,211,213,216,232,233,234,238,240,245,246,247,248,249,250,251,252,253,254,255,256,258,260,261,262,263,264,265,266,267,268,274,275,276,277,281,284,289,290,295,303,306,],[67,-1,111,-67,-68,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-1,-1,-38,-46,-1,-1,-1,-1,-47,-48,-49,207,-80,-81,-149,-102,-44,209,-85,-86,-150,-39,-40,-41,213,214,218,-18,-22,-23,-29,-30,-33,-34,-37,-140,-140,-140,-82,-87,-107,-108,242,-1,-1,-1,-1,-45,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-71,-75,-72,-73,-83,-88,-108,-90,-91,-135,-74,281,-92,-152,-136,-69,-137,-93,-89,-152,-70,]),'LEE':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[92,92,92,92,92,-50,92,92,92,92,92,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'ESCRIBE':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[93,93,93,93,93,-50,93,93,93,93,93,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'SI':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[96,96,96,96,96,-50,96,96,96,96,96,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'MIENTRAS':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[98,98,98,98,98,-50,98,98,98,98,98,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'DESDE':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[99,99,99,99,99,-50,99,99,99,99,99,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'RETURN':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[101,101,101,101,101,-50,101,101,101,101,101,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'RBRACKET':([72,81,85,86,87,88,91,116,117,118,119,120,121,122,123,124,125,155,156,157,158,159,278,285,287,293,298,301,304,310,311,312,313,314,],[-1,116,-1,-1,-1,-1,-60,-50,-1,-1,-1,-54,-55,-56,-57,-1,-1,-51,-52,-53,-58,-59,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'CTE_F':([72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[108,108,108,108,108,-50,108,108,108,108,108,108,108,108,108,-109,108,-107,108,108,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,-118,108,-107,-94,-115,108,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'CTE_C':([72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[109,109,109,109,109,-50,109,109,109,109,109,109,109,109,109,-109,109,-107,109,109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,-118,109,-107,-94,-115,109,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'CTE_S':([72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[110,110,110,110,110,-50,110,110,110,110,110,110,110,110,110,-109,110,-107,110,110,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,-118,110,-107,-94,-115,110,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'MULT':([84,94,100,105,106,107,108,109,110,129,141,146,147,148,149,164,165,171,172,173,213,240,277,281,284,289,295,303,306,],[-44,-102,-103,-110,-42,-43,-105,-104,-106,-38,-46,199,-47,-48,-49,-102,-44,-39,-40,-41,-108,-45,-152,-136,-69,-137,-89,-152,-70,]),'DIV':([84,94,100,105,106,107,108,109,110,129,141,146,147,148,149,164,165,171,172,173,213,240,277,281,284,289,295,303,306,],[-44,-102,-103,-110,-42,-43,-105,-104,-106,-38,-46,200,-47,-48,-49,-102,-44,-39,-40,-41,-108,-45,-152,-136,-69,-137,-89,-152,-70,]),'PLUS':([84,94,100,104,105,106,107,108,109,110,129,141,145,146,147,148,149,164,165,171,172,173,198,201,213,240,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-111,-110,-42,-43,-105,-104,-106,-38,-46,195,-1,-47,-48,-49,-102,-44,-39,-40,-41,-34,-37,-108,-45,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'MINUS':([84,94,100,104,105,106,107,108,109,110,129,141,145,146,147,148,149,164,165,171,172,173,198,201,213,240,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-111,-110,-42,-43,-105,-104,-106,-38,-46,196,-1,-47,-48,-49,-102,-44,-39,-40,-41,-34,-37,-108,-45,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'NOT_EQ':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,188,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'GREATER_EQ':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,189,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'LESS_EQ':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,190,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'GREATER':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,191,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'LESS':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,192,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'COMPAR':([84,94,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,164,165,171,172,173,187,193,194,197,198,201,213,240,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,183,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-23,-29,-30,-33,-34,-37,-108,-45,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'AND':([84,94,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,164,165,171,172,173,187,193,194,197,198,201,213,240,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,184,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-23,-29,-30,-33,-34,-37,-108,-45,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'OR':([84,94,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,164,165,171,172,173,187,193,194,197,198,201,213,240,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,185,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-23,-29,-30,-33,-34,-37,-108,-45,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'EQ':([84,94,97,100,102,103,104,105,106,107,108,109,110,129,140,141,143,144,145,146,147,148,149,164,165,171,172,173,180,182,186,187,193,194,197,198,201,213,240,245,246,247,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,137,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-120,-46,-1,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,217,-18,-22,-23,-29,-30,-33,-34,-37,-108,-45,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'DET':([94,130,164,],[-99,171,-99,]),'TRAN':([94,131,164,],[-100,172,-100,]),'INV':([94,132,164,],[-101,173,-101,]),'SINO':([116,278,286,292,],[-50,-115,-118,297,]),'ENTONCES':([214,241,],[-117,270,]),'HAZ':([242,271,],[-117,279,]),'HASTA':([272,280,288,],[-103,-114,294,]),'HACER':([299,302,305,307,],[-103,-119,-121,308,]),}

_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 = {'PROG':([0,],[1,]),'r_new_goto':([0,278,287,311,],[2,286,293,312,]),'VARS':([5,111,],[6,150,]),'EMPTY':([5,7,9,35,39,41,68,72,85,86,87,88,97,111,117,118,119,124,125,126,127,143,144,145,146,232,233,234,238,257,],[8,14,17,14,14,14,75,91,91,91,91,91,138,8,91,91,91,91,91,162,168,186,193,197,201,260,260,260,267,17,]),'r_change_local_context':([6,],[9,]),'TIPO':([7,35,39,41,],[10,48,52,54,]),'FUNCTION':([9,257,],[15,273,]),'r_new_function':([9,257,],[16,16,]),'r_set_var_type':([11,12,13,76,77,78,],[18,19,20,112,113,114,]),'r_complete_goto':([15,301,],[21,304,]),'VAR_INT':([18,36,50,],[23,49,58,]),'LIST_ID':([18,36,50,],[24,24,24,]),'VAR_TIPO':([19,20,],[26,28,]),'r_change_global_context':([21,],[29,]),'TIPO_FUNC':([22,],[30,]),'r_new_variable':([25,27,203,204,205,],[37,40,232,233,234,]),'r_new_arr':([25,],[38,]),'r_display_var_table':([29,],[42,]),'r_clear_mem':([30,],[43,]),'r_set_fun_type':([31,32,33,34,],[44,45,46,47,]),'MAIN':([42,],[55,]),'r_display_const':([55,],[60,]),'r_flush_mem':([56,],[61,]),'r_set_fun_name':([57,],[62,]),'r_new_dim':([59,79,],[63,115,]),'r_new_vartable':([62,],[65,]),'r_generate_arr':([66,154,],[70,206,]),'BLOQUE':([67,202,270,279,297,309,],[71,231,278,287,301,310,]),'PARAMETROS':([68,],[73,]),'AUX_PARAM':([68,259,],[74,274,]),'r_clear_arr':([70,206,],[80,235,]),'OPCION_BLOQUE':([72,85,86,87,88,117,118,119,124,125,],[81,120,121,122,123,155,156,157,158,159,]),'LECTURA':([72,85,86,87,88,117,118,119,124,125,],[82,82,82,82,82,82,82,82,82,82,]),'ESCRITURA':([72,85,86,87,88,117,118,119,124,125,],[83,83,83,83,83,83,83,83,83,83,]),'LLAMADA':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[84,84,84,84,84,84,84,84,84,84,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,]),'IF_STMT':([72,85,86,87,88,117,118,119,124,125,],[85,85,85,85,85,85,85,85,85,85,]),'IF_ELSE_STMT':([72,85,86,87,88,117,118,119,124,125,],[86,86,86,86,86,86,86,86,86,86,]),'MIENTRAS_CICLO':([72,85,86,87,88,117,118,119,124,125,],[87,87,87,87,87,87,87,87,87,87,]),'DESDE_CICLO':([72,85,86,87,88,117,118,119,124,125,],[88,88,88,88,88,88,88,88,88,88,]),'ASIGNACION':([72,85,86,87,88,117,118,119,124,125,178,],[89,89,89,89,89,89,89,89,89,89,215,]),'RETURN_STM':([72,85,86,87,88,117,118,119,124,125,],[90,90,90,90,90,90,90,90,90,90,]),'r_new_lparen':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,174,178,179,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,283,291,],[95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,212,95,95,238,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,291,95,]),'EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,219,220,221,236,237,238,282,],[97,97,97,97,97,97,97,97,97,97,163,169,175,176,181,97,216,245,246,247,163,169,268,268,]),'TLEVEL_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,219,220,221,222,223,224,225,226,236,237,238,282,],[102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,248,249,250,251,252,102,102,102,102,]),'SLEVEL_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,236,237,238,282,291,],[103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,239,103,103,103,103,103,103,103,103,253,254,103,103,103,103,296,]),'FLEVEL_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,255,256,104,104,104,104,104,]),'VALUE_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,]),'ARR':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,]),'CONSTANTE':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,]),'r_verify_function':([94,164,],[128,128,]),'r_new_id':([94,164,],[129,129,]),'r_new_det':([94,164,],[130,130,]),'r_new_tran':([94,164,],[131,131,]),'r_new_inv':([94,164,],[132,132,]),'r_register_arr':([94,164,],[133,133,]),'ASIGNACION_AUX':([97,],[136,]),'r_new_migajita':([98,302,],[139,305,]),'r_new_c_int':([100,272,299,],[141,280,302,]),'r_new_quadruple':([102,],[143,]),'r_new_quadruple_tlevel':([103,],[144,]),'r_new_quadruple_slevel':([104,],[145,]),'r_new_quadruple_flevel':([105,],[146,]),'r_new_c_float':([108,],[147,]),'r_new_c_char':([109,],[148,]),'r_new_c_string':([110,],[149,]),'r_insert_type':([112,113,114,],[151,152,153,]),'PARAMETRO_LECTURA':([126,],[160,]),'PARAMETRO_LECTURA_AUX':([126,236,],[161,263,]),'PARAMETRO_ESCRITURA':([127,],[166,]),'PARAMETRO_ESCRITURA_AUX':([127,237,],[167,264,]),'r_generate_era':([128,],[170,]),'r_new_equal':([136,280,],[177,288,]),'r_new_operator':([137,183,184,185,188,189,190,191,192,195,196,199,200,217,],[178,219,220,221,222,223,224,225,226,227,228,229,230,243,]),'r_new_id_for':([140,],[180,]),'EXPRESION_AUX':([143,],[182,]),'TLEVEL_EXPRESION_AUX':([144,],[187,]),'SLEVEL_EXPRESION_AUX':([145,],[194,]),'FLEVEL_EXPRESION_AUX':([146,],[198,]),'r_insert_parameters':([150,],[202,]),'r_new_read':([163,],[208,]),'r_new_write':([169,],[210,]),'r_new_rparen':([213,239,265,296,],[240,269,275,300,]),'r_new_gotof':([214,242,308,],[241,271,309,]),'r_generate_return':([218,],[244,]),'r_end_function':([231,],[257,]),'NEXT_PARAM':([232,233,234,],[258,261,262,]),'TIPO_PARAMETROS':([238,],[265,]),'TIPO_PARAMETROS_AUX':([238,282,],[266,290,]),'r_verify_parameter':([268,],[276,]),'r_quad_arr':([277,303,],[284,306,]),'r_complete_gotof':([278,286,293,312,],[285,292,298,313,]),'r_verify_last_parameter':([281,],[289,]),'r_generate_gosub':([289,],[295,]),'r_compara_for':([305,],[307,]),'r_update_for':([310,],[311,]),'r_clear_for':([313,],[314,]),}

_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' -> PROG","S'",1,None,None,None),
  ('EMPTY -> <empty>','EMPTY',0,'p_EMPTY','parser.py',25),
  ('MAIN -> PRINCIPAL r_flush_mem LPAREN RPAREN BLOQUE','MAIN',5,'p_MAIN','parser.py',29),
  ('PROG -> r_new_goto PROGRAMA ID SEMI_COLON VARS r_change_local_context FUNCTION r_complete_goto r_change_global_context r_display_var_table MAIN r_display_const','PROG',12,'p_PROG','parser.py',33),
  ('VARS -> VAR TIPO','VARS',2,'p_VARS','parser.py',37),
  ('VARS -> EMPTY','VARS',1,'p_VARS','parser.py',38),
  ('TIPO -> INT r_set_var_type VAR_INT SEMI_COLON TIPO','TIPO',5,'p_TIPO','parser.py',42),
  ('TIPO -> FLOAT r_set_var_type VAR_TIPO SEMI_COLON TIPO','TIPO',5,'p_TIPO','parser.py',43),
  ('TIPO -> CHAR r_set_var_type VAR_TIPO SEMI_COLON TIPO','TIPO',5,'p_TIPO','parser.py',44),
  ('TIPO -> EMPTY','TIPO',1,'p_TIPO','parser.py',45),
  ('VAR_INT -> LIST_ID COMMA VAR_INT','VAR_INT',3,'p_VAR_INT','parser.py',49),
  ('VAR_INT -> ID r_new_variable COMMA VAR_INT','VAR_INT',4,'p_VAR_INT','parser.py',50),
  ('VAR_INT -> LIST_ID','VAR_INT',1,'p_VAR_INT','parser.py',51),
  ('VAR_INT -> ID r_new_variable','VAR_INT',2,'p_VAR_INT','parser.py',52),
  ('VAR_TIPO -> ID r_new_variable COMMA','VAR_TIPO',3,'p_VAR_TIPO','parser.py',56),
  ('VAR_TIPO -> ID r_new_variable','VAR_TIPO',2,'p_VAR_TIPO','parser.py',57),
  ('LIST_ID -> ID r_new_arr LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr','LIST_ID',8,'p_LIST_ID','parser.py',61),
  ('LIST_ID -> ID r_new_arr LSQ CTE_I r_new_dim RSQ LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr','LIST_ID',12,'p_LIST_ID','parser.py',62),
  ('EXPRESION -> TLEVEL_EXPRESION r_new_quadruple EXPRESION_AUX','EXPRESION',3,'p_EXPRESION','parser.py',70),
  ('EXPRESION_AUX -> COMPAR r_new_operator EXPRESION','EXPRESION_AUX',3,'p_EXPRESION_AUX','parser.py',74),
  ('EXPRESION_AUX -> AND r_new_operator EXPRESION','EXPRESION_AUX',3,'p_EXPRESION_AUX','parser.py',75),
  ('EXPRESION_AUX -> OR r_new_operator EXPRESION','EXPRESION_AUX',3,'p_EXPRESION_AUX','parser.py',76),
  ('EXPRESION_AUX -> EMPTY','EXPRESION_AUX',1,'p_EXPRESION_AUX','parser.py',77),
  ('TLEVEL_EXPRESION -> SLEVEL_EXPRESION r_new_quadruple_tlevel TLEVEL_EXPRESION_AUX','TLEVEL_EXPRESION',3,'p_TLEVEL_EXPRESION','parser.py',81),
  ('TLEVEL_EXPRESION_AUX -> NOT_EQ r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',85),
  ('TLEVEL_EXPRESION_AUX -> GREATER_EQ r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',86),
  ('TLEVEL_EXPRESION_AUX -> LESS_EQ r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',87),
  ('TLEVEL_EXPRESION_AUX -> GREATER r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',88),
  ('TLEVEL_EXPRESION_AUX -> LESS r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',89),
  ('TLEVEL_EXPRESION_AUX -> EMPTY','TLEVEL_EXPRESION_AUX',1,'p_TLEVEL_EXPRESION_AUX','parser.py',90),
  ('SLEVEL_EXPRESION -> FLEVEL_EXPRESION r_new_quadruple_slevel SLEVEL_EXPRESION_AUX','SLEVEL_EXPRESION',3,'p_SLEVEL_EXPRESION','parser.py',94),
  ('SLEVEL_EXPRESION_AUX -> PLUS r_new_operator SLEVEL_EXPRESION','SLEVEL_EXPRESION_AUX',3,'p_SLEVEL_EXPRESION_AUX','parser.py',98),
  ('SLEVEL_EXPRESION_AUX -> MINUS r_new_operator SLEVEL_EXPRESION','SLEVEL_EXPRESION_AUX',3,'p_SLEVEL_EXPRESION_AUX','parser.py',99),
  ('SLEVEL_EXPRESION_AUX -> EMPTY','SLEVEL_EXPRESION_AUX',1,'p_SLEVEL_EXPRESION_AUX','parser.py',100),
  ('FLEVEL_EXPRESION -> VALUE_EXPRESION r_new_quadruple_flevel FLEVEL_EXPRESION_AUX','FLEVEL_EXPRESION',3,'p_FLEVEL_EXPRESION','parser.py',104),
  ('FLEVEL_EXPRESION_AUX -> MULT r_new_operator FLEVEL_EXPRESION','FLEVEL_EXPRESION_AUX',3,'p_FLEVEL_EXPRESION_AUX','parser.py',108),
  ('FLEVEL_EXPRESION_AUX -> DIV r_new_operator FLEVEL_EXPRESION','FLEVEL_EXPRESION_AUX',3,'p_FLEVEL_EXPRESION_AUX','parser.py',109),
  ('FLEVEL_EXPRESION_AUX -> EMPTY','FLEVEL_EXPRESION_AUX',1,'p_FLEVEL_EXPRESION_AUX','parser.py',110),
  ('VALUE_EXPRESION -> ID r_new_id','VALUE_EXPRESION',2,'p_VALUE_EXPRESION','parser.py',114),
  ('VALUE_EXPRESION -> ID r_new_det DET','VALUE_EXPRESION',3,'p_VALUE_EXPRESION','parser.py',115),
  ('VALUE_EXPRESION -> ID r_new_tran TRAN','VALUE_EXPRESION',3,'p_VALUE_EXPRESION','parser.py',116),
  ('VALUE_EXPRESION -> ID r_new_inv INV','VALUE_EXPRESION',3,'p_VALUE_EXPRESION','parser.py',117),
  ('VALUE_EXPRESION -> ARR','VALUE_EXPRESION',1,'p_VALUE_EXPRESION','parser.py',118),
  ('VALUE_EXPRESION -> CONSTANTE','VALUE_EXPRESION',1,'p_VALUE_EXPRESION','parser.py',119),
  ('VALUE_EXPRESION -> LLAMADA','VALUE_EXPRESION',1,'p_VALUE_EXPRESION','parser.py',120),
  ('VALUE_EXPRESION -> r_new_lparen LPAREN EXPRESION RPAREN r_new_rparen','VALUE_EXPRESION',5,'p_VALUE_EXPRESION','parser.py',121),
  ('CONSTANTE -> CTE_I r_new_c_int','CONSTANTE',2,'p_CONSTANTE','parser.py',125),
  ('CONSTANTE -> CTE_F r_new_c_float','CONSTANTE',2,'p_CONSTANTE','parser.py',126),
  ('CONSTANTE -> CTE_C r_new_c_char','CONSTANTE',2,'p_CONSTANTE','parser.py',127),
  ('CONSTANTE -> CTE_S r_new_c_string','CONSTANTE',2,'p_CONSTANTE','parser.py',128),
  ('BLOQUE -> LBRACKET OPCION_BLOQUE RBRACKET','BLOQUE',3,'p_BLOQUE','parser.py',136),
  ('OPCION_BLOQUE -> LECTURA SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',140),
  ('OPCION_BLOQUE -> ESCRITURA SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',141),
  ('OPCION_BLOQUE -> LLAMADA SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',142),
  ('OPCION_BLOQUE -> IF_STMT OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',143),
  ('OPCION_BLOQUE -> IF_ELSE_STMT OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',144),
  ('OPCION_BLOQUE -> MIENTRAS_CICLO OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',145),
  ('OPCION_BLOQUE -> DESDE_CICLO OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',146),
  ('OPCION_BLOQUE -> ASIGNACION SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',147),
  ('OPCION_BLOQUE -> RETURN_STM SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',148),
  ('OPCION_BLOQUE -> EMPTY','OPCION_BLOQUE',1,'p_OPCION_BLOQUE','parser.py',149),
  ('FUNCTION -> r_new_function FUNCION TIPO_FUNC r_clear_mem ID r_set_fun_name r_new_vartable LPAREN PARAMETROS RPAREN VARS r_insert_parameters BLOQUE r_end_function FUNCTION','FUNCTION',15,'p_FUNCTION','parser.py',159),
  ('FUNCTION -> EMPTY','FUNCTION',1,'p_FUNCTION','parser.py',160),
  ('TIPO_FUNC -> INT r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',164),
  ('TIPO_FUNC -> FLOAT r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',165),
  ('TIPO_FUNC -> CHAR r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',166),
  ('TIPO_FUNC -> VOID r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',167),
  ('PARAMETROS -> AUX_PARAM','PARAMETROS',1,'p_PARAMETROS','parser.py',171),
  ('PARAMETROS -> EMPTY','PARAMETROS',1,'p_PARAMETROS','parser.py',172),
  ('ARR -> ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr','ARR',8,'p_ARR','parser.py',176),
  ('ARR -> ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr','ARR',13,'p_ARR','parser.py',177),
  ('AUX_PARAM -> INT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM','AUX_PARAM',6,'p_AUX_PARAM','parser.py',182),
  ('AUX_PARAM -> FLOAT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM','AUX_PARAM',6,'p_AUX_PARAM','parser.py',183),
  ('AUX_PARAM -> CHAR r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM','AUX_PARAM',6,'p_AUX_PARAM','parser.py',184),
  ('NEXT_PARAM -> COMMA AUX_PARAM','NEXT_PARAM',2,'p_NEXT_PARAM','parser.py',188),
  ('NEXT_PARAM -> EMPTY','NEXT_PARAM',1,'p_NEXT_PARAM','parser.py',189),
  ('RETURN_STM -> RETURN LPAREN EXPRESION RPAREN r_generate_return','RETURN_STM',5,'p_RETURN_STM','parser.py',192),
  ('DESDE_CICLO -> DESDE ID r_new_id_for EQ r_new_operator CTE_I r_new_c_int r_new_equal HASTA CTE_I r_new_c_int r_new_migajita r_compara_for HACER r_new_gotof BLOQUE r_update_for r_new_goto r_complete_gotof r_clear_for','DESDE_CICLO',20,'p_DESDE_CICLO','parser.py',197),
  ('MIENTRAS_CICLO -> MIENTRAS r_new_migajita LPAREN EXPRESION RPAREN r_new_gotof HAZ BLOQUE r_new_goto r_complete_gotof','MIENTRAS_CICLO',10,'p_MIENTRAS_CICLO','parser.py',202),
  ('LECTURA -> LEE LPAREN PARAMETRO_LECTURA RPAREN','LECTURA',4,'p_LECTURA','parser.py',207),
  ('PARAMETRO_LECTURA -> PARAMETRO_LECTURA_AUX','PARAMETRO_LECTURA',1,'p_PARAMETRO_LECTURA','parser.py',211),
  ('PARAMETRO_LECTURA -> EMPTY','PARAMETRO_LECTURA',1,'p_PARAMETRO_LECTURA','parser.py',212),
  ('PARAMETRO_LECTURA_AUX -> EXPRESION r_new_read','PARAMETRO_LECTURA_AUX',2,'p_PARAMETRO_LECTURA_AUX','parser.py',215),
  ('PARAMETRO_LECTURA_AUX -> EXPRESION r_new_read COMMA PARAMETRO_LECTURA_AUX','PARAMETRO_LECTURA_AUX',4,'p_PARAMETRO_LECTURA_AUX','parser.py',216),
  ('ESCRITURA -> ESCRIBE LPAREN PARAMETRO_ESCRITURA RPAREN','ESCRITURA',4,'p_ESCRITURA','parser.py',220),
  ('PARAMETRO_ESCRITURA -> PARAMETRO_ESCRITURA_AUX','PARAMETRO_ESCRITURA',1,'p_PARAMETRO_ESCRITURA','parser.py',224),
  ('PARAMETRO_ESCRITURA -> EMPTY','PARAMETRO_ESCRITURA',1,'p_PARAMETRO_ESCRITURA','parser.py',225),
  ('PARAMETRO_ESCRITURA_AUX -> EXPRESION r_new_write','PARAMETRO_ESCRITURA_AUX',2,'p_PARAMETRO_ESCRITURA_AUX','parser.py',229),
  ('PARAMETRO_ESCRITURA_AUX -> EXPRESION r_new_write COMMA PARAMETRO_ESCRITURA_AUX','PARAMETRO_ESCRITURA_AUX',4,'p_PARAMETRO_ESCRITURA_AUX','parser.py',230),
  ('LLAMADA -> ID r_verify_function r_generate_era LPAREN r_new_lparen TIPO_PARAMETROS r_new_rparen RPAREN r_verify_last_parameter r_generate_gosub','LLAMADA',10,'p_LLAMADA','parser.py',234),
  ('TIPO_PARAMETROS -> TIPO_PARAMETROS_AUX','TIPO_PARAMETROS',1,'p_TIPO_PARAMETROS','parser.py',238),
  ('TIPO_PARAMETROS -> EMPTY','TIPO_PARAMETROS',1,'p_TIPO_PARAMETROS','parser.py',239),
  ('TIPO_PARAMETROS_AUX -> EXPRESION r_verify_parameter','TIPO_PARAMETROS_AUX',2,'p_TIPO_PARAMETROS_AUX','parser.py',243),
  ('TIPO_PARAMETROS_AUX -> EXPRESION r_verify_parameter COMMA TIPO_PARAMETROS_AUX','TIPO_PARAMETROS_AUX',4,'p_TIPO_PARAMETROS_AUX','parser.py',244),
  ('IF_STMT -> SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_complete_gotof','IF_STMT',8,'p_IF_STMT','parser.py',250),
  ('IF_ELSE_STMT -> SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_new_goto r_complete_gotof SINO BLOQUE r_complete_goto','IF_ELSE_STMT',12,'p_IF_ELSE_STMT','parser.py',255),
  ('ASIGNACION -> EXPRESION ASIGNACION_AUX r_new_equal','ASIGNACION',3,'p_ASIGNACION','parser.py',260),
  ('ASIGNACION_AUX -> EQ r_new_operator ASIGNACION','ASIGNACION_AUX',3,'p_ASIGNACION_AUX','parser.py',264),
  ('ASIGNACION_AUX -> EMPTY','ASIGNACION_AUX',1,'p_ASIGNACION_AUX','parser.py',265),
  ('r_new_det -> <empty>','r_new_det',0,'p_r_new_det','parser.py',291),
  ('r_new_tran -> <empty>','r_new_tran',0,'p_r_new_tran','parser.py',311),
  ('r_new_inv -> <empty>','r_new_inv',0,'p_r_new_inv','parser.py',331),
  ('r_new_id -> <empty>','r_new_id',0,'p_r_new_id','parser.py',351),
  ('r_new_c_int -> <empty>','r_new_c_int',0,'p_r_new_c_int','parser.py',374),
  ('r_new_c_char -> <empty>','r_new_c_char',0,'p_r_new_c_char','parser.py',380),
  ('r_new_c_float -> <empty>','r_new_c_float',0,'p_r_new_c_float','parser.py',386),
  ('r_new_c_string -> <empty>','r_new_c_string',0,'p_r_new_c_string','parser.py',392),
  ('r_new_lparen -> <empty>','r_new_lparen',0,'p_r_new_lparen','parser.py',398),
  ('r_new_rparen -> <empty>','r_new_rparen',0,'p_r_new_rparen','parser.py',402),
  ('r_new_operator -> <empty>','r_new_operator',0,'p_r_new_operator','parser.py',408),
  ('r_new_quadruple_flevel -> <empty>','r_new_quadruple_flevel',0,'p_r_new_quadruple_flevel','parser.py',412),
  ('r_new_quadruple_slevel -> <empty>','r_new_quadruple_slevel',0,'p_r_new_quadruple_slevel','parser.py',425),
  ('r_new_quadruple_tlevel -> <empty>','r_new_quadruple_tlevel',0,'p_r_new_quadruple_tlevel','parser.py',438),
  ('r_new_quadruple -> <empty>','r_new_quadruple',0,'p_r_new_quadruple','parser.py',445),
  ('r_new_equal -> <empty>','r_new_equal',0,'p_r_new_equal','parser.py',452),
  ('r_new_goto -> <empty>','r_new_goto',0,'p_r_new_goto','parser.py',469),
  ('r_complete_goto -> <empty>','r_complete_goto',0,'p_r_complete_goto','parser.py',473),
  ('r_new_gotof -> <empty>','r_new_gotof',0,'p_r_new_gotof','parser.py',477),
  ('r_complete_gotof -> <empty>','r_complete_gotof',0,'p_r_complete_gotof','parser.py',483),
  ('r_new_migajita -> <empty>','r_new_migajita',0,'p_r_new_migajita','parser.py',487),
  ('r_new_id_for -> <empty>','r_new_id_for',0,'p_r_new_id_for','parser.py',491),
  ('r_compara_for -> <empty>','r_compara_for',0,'p_r_compara_for','parser.py',509),
  ('r_update_for -> <empty>','r_update_for',0,'p_r_update_for','parser.py',519),
  ('r_clear_for -> <empty>','r_clear_for',0,'p_r_clear_for','parser.py',528),
  ('r_clear_mem -> <empty>','r_clear_mem',0,'p_r_clear_mem','parser.py',538),
  ('r_new_function -> <empty>','r_new_function',0,'p_r_new_function','parser.py',542),
  ('r_insert_type -> <empty>','r_insert_type',0,'p_r_insert_type','parser.py',552),
  ('r_set_fun_type -> <empty>','r_set_fun_type',0,'p_r_set_fun_type','parser.py',556),
  ('r_set_fun_name -> <empty>','r_set_fun_name',0,'p_r_set_fun_name','parser.py',560),
  ('r_new_vartable -> <empty>','r_new_vartable',0,'p_r_new_vartable','parser.py',564),
  ('r_insert_parameters -> <empty>','r_insert_parameters',0,'p_r_insert_parameters','parser.py',568),
  ('r_end_function -> <empty>','r_end_function',0,'p_r_end_function','parser.py',586),
  ('r_flush_mem -> <empty>','r_flush_mem',0,'p_r_flush_mem','parser.py',592),
  ('r_verify_function -> <empty>','r_verify_function',0,'p_r_verify_function','parser.py',599),
  ('r_generate_era -> <empty>','r_generate_era',0,'p_r_generate_era','parser.py',609),
  ('r_verify_parameter -> <empty>','r_verify_parameter',0,'p_r_verify_parameter','parser.py',613),
  ('r_verify_last_parameter -> <empty>','r_verify_last_parameter',0,'p_r_verify_last_parameter','parser.py',624),
  ('r_generate_gosub -> <empty>','r_generate_gosub',0,'p_r_generate_gosub','parser.py',631),
  ('r_generate_return -> <empty>','r_generate_return',0,'p_r_generate_return','parser.py',642),
  ('r_set_var_type -> <empty>','r_set_var_type',0,'p_r_set_var_type','parser.py',659),
  ('r_new_variable -> <empty>','r_new_variable',0,'p_r_new_variable','parser.py',663),
  ('r_change_local_context -> <empty>','r_change_local_context',0,'p_r_change_local_context','parser.py',669),
  ('r_change_global_context -> <empty>','r_change_global_context',0,'p_r_change_global_context','parser.py',673),
  ('r_display_var_table -> <empty>','r_display_var_table',0,'p_r_display_var_table','parser.py',677),
  ('r_display_const -> <empty>','r_display_const',0,'p_r_display_const','parser.py',681),
  ('r_new_arr -> <empty>','r_new_arr',0,'p_r_new_arr','parser.py',685),
  ('r_new_dim -> <empty>','r_new_dim',0,'p_r_new_dim','parser.py',690),
  ('r_generate_arr -> <empty>','r_generate_arr',0,'p_r_generate_arr','parser.py',700),
  ('r_clear_arr -> <empty>','r_clear_arr',0,'p_r_clear_arr','parser.py',708),
  ('r_new_read -> <empty>','r_new_read',0,'p_r_new_read','parser.py',717),
  ('r_new_write -> <empty>','r_new_write',0,'p_r_new_write','parser.py',721),
  ('r_register_arr -> <empty>','r_register_arr',0,'p_r_register_arr','parser.py',729),
  ('r_quad_arr -> <empty>','r_quad_arr',0,'p_r_quad_arr','parser.py',734),
]

4ffe5b581863c8d52b4cabbbea082a76c7467637
<mask token>

<mask token>
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
<mask token>
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
<mask token>

_tabversion = '3.10'
_lr_method = 'LALR'
_lr_signature = """PROGAND CHAR COLON COMMA COMMENT COMPAR CTE_C CTE_F CTE_I CTE_S DESDE DET DIV DOT ENTONCES EQ ESCRIBE FLOAT FUNCION GREATER GREATER_EQ HACER HASTA HAZ ID INT INV LBRACKET LEE LESS LESS_EQ LPAREN LSQ MIENTRAS MINUS MULT NOT_EQ NULL OR PLUS PRINCIPAL PROGRAMA RBRACKET RETURN RPAREN RSQ SEMI_COLON SI SINO TRAN VAR VOIDEMPTY :MAIN : PRINCIPAL r_flush_mem LPAREN RPAREN BLOQUEPROG : r_new_goto PROGRAMA ID SEMI_COLON VARS r_change_local_context FUNCTION r_complete_goto r_change_global_context r_display_var_table MAIN r_display_constVARS : VAR TIPO
            | EMPTYTIPO : INT r_set_var_type VAR_INT SEMI_COLON TIPO
            | FLOAT r_set_var_type VAR_TIPO SEMI_COLON TIPO
            | CHAR r_set_var_type VAR_TIPO SEMI_COLON TIPO
            | EMPTYVAR_INT : LIST_ID COMMA VAR_INT
                | ID r_new_variable COMMA VAR_INT
                | LIST_ID
                | ID r_new_variableVAR_TIPO : ID r_new_variable COMMA
                | ID r_new_variableLIST_ID : ID r_new_arr LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr
                | ID r_new_arr LSQ CTE_I r_new_dim RSQ LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr
    EXPRESION : TLEVEL_EXPRESION r_new_quadruple EXPRESION_AUXEXPRESION_AUX : COMPAR r_new_operator EXPRESION
                    | AND r_new_operator EXPRESION
                    | OR r_new_operator EXPRESION
                    | EMPTYTLEVEL_EXPRESION : SLEVEL_EXPRESION r_new_quadruple_tlevel TLEVEL_EXPRESION_AUXTLEVEL_EXPRESION_AUX : NOT_EQ r_new_operator TLEVEL_EXPRESION
                            | GREATER_EQ r_new_operator TLEVEL_EXPRESION
                            | LESS_EQ r_new_operator TLEVEL_EXPRESION
                            | GREATER r_new_operator TLEVEL_EXPRESION
                            | LESS r_new_operator TLEVEL_EXPRESION
                            | EMPTYSLEVEL_EXPRESION : FLEVEL_EXPRESION r_new_quadruple_slevel SLEVEL_EXPRESION_AUXSLEVEL_EXPRESION_AUX : PLUS r_new_operator SLEVEL_EXPRESION
                            | MINUS r_new_operator SLEVEL_EXPRESION
                            | EMPTYFLEVEL_EXPRESION : VALUE_EXPRESION r_new_quadruple_flevel FLEVEL_EXPRESION_AUXFLEVEL_EXPRESION_AUX : MULT r_new_operator FLEVEL_EXPRESION
                            | DIV r_new_operator FLEVEL_EXPRESION
                            | EMPTYVALUE_EXPRESION : ID r_new_id
                    | ID r_new_det DET
                    | ID r_new_tran TRAN
                    | ID r_new_inv INV
                    | ARR
                    | CONSTANTE 
                    | LLAMADA
                    | r_new_lparen LPAREN EXPRESION RPAREN r_new_rparen
    CONSTANTE : CTE_I r_new_c_int
                | CTE_F r_new_c_float
                | CTE_C r_new_c_char
                | CTE_S r_new_c_string
    BLOQUE : LBRACKET OPCION_BLOQUE RBRACKETOPCION_BLOQUE : LECTURA SEMI_COLON OPCION_BLOQUE
                    | ESCRITURA SEMI_COLON OPCION_BLOQUE
                    | LLAMADA SEMI_COLON OPCION_BLOQUE
                    | IF_STMT OPCION_BLOQUE
                    | IF_ELSE_STMT OPCION_BLOQUE
                    | MIENTRAS_CICLO OPCION_BLOQUE
                    | DESDE_CICLO OPCION_BLOQUE
                    | ASIGNACION SEMI_COLON OPCION_BLOQUE
                    | RETURN_STM SEMI_COLON OPCION_BLOQUE
                    | EMPTY
    FUNCTION : r_new_function FUNCION TIPO_FUNC r_clear_mem ID r_set_fun_name r_new_vartable LPAREN PARAMETROS RPAREN VARS r_insert_parameters BLOQUE r_end_function FUNCTION 
                | EMPTYTIPO_FUNC : INT r_set_fun_type
                | FLOAT r_set_fun_type
                | CHAR r_set_fun_type
                | VOID r_set_fun_typePARAMETROS : AUX_PARAM
                | EMPTYARR : ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr
                | ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr
    AUX_PARAM : INT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM
                | FLOAT r_set_var_type  r_insert_type ID r_new_variable NEXT_PARAM
                | CHAR r_set_var_type r_insert_type ID r_new_variable NEXT_PARAMNEXT_PARAM : COMMA AUX_PARAM
                    | EMPTY RETURN_STM : RETURN LPAREN EXPRESION RPAREN r_generate_returnDESDE_CICLO : DESDE ID r_new_id_for EQ r_new_operator CTE_I r_new_c_int r_new_equal HASTA CTE_I r_new_c_int r_new_migajita r_compara_for HACER r_new_gotof BLOQUE r_update_for r_new_goto r_complete_gotof r_clear_forMIENTRAS_CICLO : MIENTRAS r_new_migajita LPAREN EXPRESION RPAREN r_new_gotof HAZ BLOQUE r_new_goto r_complete_gotofLECTURA : LEE LPAREN PARAMETRO_LECTURA RPARENPARAMETRO_LECTURA : PARAMETRO_LECTURA_AUX
                        | EMPTYPARAMETRO_LECTURA_AUX : EXPRESION r_new_read
                            | EXPRESION r_new_read COMMA PARAMETRO_LECTURA_AUXESCRITURA : ESCRIBE LPAREN PARAMETRO_ESCRITURA RPARENPARAMETRO_ESCRITURA : PARAMETRO_ESCRITURA_AUX
                            | EMPTYPARAMETRO_ESCRITURA_AUX : EXPRESION r_new_write
                                | EXPRESION r_new_write COMMA PARAMETRO_ESCRITURA_AUXLLAMADA : ID r_verify_function r_generate_era LPAREN r_new_lparen TIPO_PARAMETROS r_new_rparen RPAREN r_verify_last_parameter r_generate_gosubTIPO_PARAMETROS : TIPO_PARAMETROS_AUX
                        | EMPTYTIPO_PARAMETROS_AUX : EXPRESION r_verify_parameter
                            | EXPRESION r_verify_parameter COMMA TIPO_PARAMETROS_AUX
    IF_STMT : SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_complete_gotofIF_ELSE_STMT : SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_new_goto r_complete_gotof SINO BLOQUE r_complete_gotoASIGNACION : EXPRESION ASIGNACION_AUX r_new_equalASIGNACION_AUX : EQ r_new_operator ASIGNACION
                    | EMPTY
    r_new_det :r_new_tran : r_new_inv : r_new_id : r_new_c_int : r_new_c_char : r_new_c_float : r_new_c_string : r_new_lparen : r_new_rparen : r_new_operator : r_new_quadruple_flevel : r_new_quadruple_slevel : r_new_quadruple_tlevel : r_new_quadruple : r_new_equal : r_new_goto : r_complete_goto : r_new_gotof : r_complete_gotof : r_new_migajita : r_new_id_for : r_compara_for : r_update_for : r_clear_for : r_clear_mem : r_new_function : r_insert_type : r_set_fun_type : r_set_fun_name : r_new_vartable : r_insert_parameters : r_end_function : r_flush_mem : r_verify_function : r_generate_era : r_verify_parameter : r_verify_last_parameter : r_generate_gosub : r_generate_return : r_set_var_type : r_new_variable : r_change_local_context : r_change_global_context : r_display_var_table : r_display_const : r_new_arr : r_new_dim : r_generate_arr : r_clear_arr : r_new_read : r_new_write : r_register_arr : r_quad_arr : """
_lr_action_items = {'PROGRAMA': ([0, 2], [-115, 3]), '$end': ([1, 55, 60, 
    71, 116], [0, -144, -3, -2, -50]), 'ID': ([3, 11, 12, 13, 18, 19, 20, 
    30, 31, 32, 33, 34, 36, 43, 44, 45, 46, 47, 50, 72, 76, 77, 78, 85, 86,
    87, 88, 99, 112, 113, 114, 116, 117, 118, 119, 124, 125, 126, 127, 134,
    135, 137, 142, 151, 152, 153, 174, 178, 179, 183, 184, 185, 188, 189, 
    190, 191, 192, 195, 196, 199, 200, 211, 212, 219, 220, 221, 222, 223, 
    224, 225, 226, 227, 228, 229, 230, 236, 237, 238, 278, 282, 283, 285, 
    287, 291, 293, 298, 301, 304, 310, 311, 312, 313, 314], [4, -139, -139,
    -139, 25, 27, 27, -124, -127, -127, -127, -127, 25, 57, -63, -64, -65, 
    -66, 25, 94, -139, -139, -139, 94, 94, 94, 94, 140, -126, -126, -126, -
    50, 94, 94, 94, 94, 94, 164, 164, 164, 164, -109, 164, 203, 204, 205, -
    107, 164, 164, -109, -109, -109, -109, -109, -109, -109, -109, -109, -
    109, -109, -109, -107, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164,
    164, 164, 164, 164, 164, 164, -118, 164, -107, -94, -115, 164, -118, -
    78, -116, -95, -122, -115, -118, -123, -77]), 'SEMI_COLON': ([4, 23, 24,
    25, 26, 27, 28, 37, 40, 49, 53, 58, 66, 70, 80, 82, 83, 84, 89, 90, 94,
    97, 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 129, 136, 138, 
    141, 143, 144, 145, 146, 147, 148, 149, 154, 164, 165, 171, 172, 173, 
    177, 182, 186, 187, 193, 194, 197, 198, 201, 206, 207, 209, 213, 215, 
    218, 235, 240, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 
    255, 256, 277, 281, 284, 289, 295, 303, 306], [5, 35, -12, -140, 39, -
    140, 41, -13, -15, -10, -14, -11, -147, -148, -16, 117, 118, 119, 124, 
    125, -102, -1, -103, -113, -112, -111, -110, -42, -43, -105, -104, -106,
    -38, -114, -98, -46, -1, -1, -1, -1, -47, -48, -49, -147, -102, -44, -
    39, -40, -41, -96, -18, -22, -23, -29, -30, -33, -34, -37, -148, -79, -
    84, -108, -97, -138, -17, -45, -76, -19, -20, -21, -24, -25, -26, -27, 
    -28, -31, -32, -35, -36, -152, -136, -69, -137, -89, -152, -70]), 'VAR':
    ([5, 111], [7, 7]), 'PRINCIPAL': ([5, 6, 7, 8, 9, 10, 14, 15, 17, 21, 
    29, 35, 39, 41, 42, 48, 52, 54, 116, 231, 257, 273], [-1, -141, -1, -5,
    -1, -4, -9, -116, -62, -142, -143, -1, -1, -1, 56, -6, -7, -8, -50, -
    131, -1, -61]), 'FUNCION': ([5, 6, 7, 8, 9, 10, 14, 16, 35, 39, 41, 48,
    52, 54, 116, 231, 257], [-1, -141, -1, -5, -125, -4, -9, 22, -1, -1, -1,
    -6, -7, -8, -50, -131, -125]), 'INT': ([7, 22, 35, 39, 41, 68, 259], [
    11, 31, 11, 11, 11, 76, 76]), 'FLOAT': ([7, 22, 35, 39, 41, 68, 259], [
    12, 32, 12, 12, 12, 77, 77]), 'CHAR': ([7, 22, 35, 39, 41, 68, 259], [
    13, 33, 13, 13, 13, 78, 78]), 'LBRACKET': ([7, 8, 10, 14, 35, 39, 41, 
    48, 52, 54, 67, 111, 150, 202, 270, 279, 297, 308, 309], [-1, -5, -4, -
    9, -1, -1, -1, -6, -7, -8, 72, -1, -130, 72, 72, 72, 72, -117, 72]),
    'VOID': ([22], [34]), 'COMMA': ([24, 25, 27, 37, 40, 66, 70, 80, 100, 
    102, 103, 104, 105, 106, 107, 108, 109, 110, 129, 141, 143, 144, 145, 
    146, 147, 148, 149, 154, 163, 164, 165, 169, 171, 172, 173, 182, 186, 
    187, 193, 194, 197, 198, 201, 203, 204, 205, 206, 208, 210, 213, 232, 
    233, 234, 235, 240, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 
    255, 256, 268, 276, 277, 281, 284, 289, 295, 303, 306], [36, -140, -140,
    50, 53, -147, -148, -16, -103, -113, -112, -111, -110, -42, -43, -105, 
    -104, -106, -38, -46, -1, -1, -1, -1, -47, -48, -49, -147, -149, -102, 
    -44, -150, -39, -40, -41, -18, -22, -23, -29, -30, -33, -34, -37, -140,
    -140, -140, -148, 236, 237, -108, 259, 259, 259, -17, -45, -19, -20, -
    21, -24, -25, -26, -27, -28, -31, -32, -35, -36, -135, 282, -152, -136,
    -69, -137, -89, -152, -70]), 'LSQ': ([25, 38, 66, 94, 133, 164, 277], [
    -145, 51, 69, -151, 174, -151, 283]), 'CTE_I': ([51, 69, 72, 85, 86, 87,
    88, 116, 117, 118, 119, 124, 125, 126, 127, 134, 135, 137, 142, 174, 
    178, 179, 183, 184, 185, 188, 189, 190, 191, 192, 195, 196, 199, 200, 
    211, 212, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 
    230, 236, 237, 238, 243, 278, 282, 283, 285, 287, 291, 293, 294, 298, 
    301, 304, 310, 311, 312, 313, 314], [59, 79, 100, 100, 100, 100, 100, -
    50, 100, 100, 100, 100, 100, 100, 100, 100, 100, -109, 100, -107, 100, 
    100, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, 
    -109, -107, 100, -109, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
    100, 100, 100, 100, 100, 272, -118, 100, -107, -94, -115, 100, -118, 
    299, -78, -116, -95, -122, -115, -118, -123, -77]), 'LPAREN': ([56, 57,
    61, 62, 65, 72, 85, 86, 87, 88, 92, 93, 94, 95, 96, 98, 101, 116, 117, 
    118, 119, 124, 125, 126, 127, 128, 134, 135, 137, 139, 142, 164, 170, 
    174, 178, 179, 183, 184, 185, 188, 189, 190, 191, 192, 195, 196, 199, 
    200, 211, 212, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 
    230, 236, 237, 238, 278, 282, 283, 285, 287, 291, 293, 298, 301, 304, 
    310, 311, 312, 313, 314], [-132, -128, 64, -129, 68, -107, -107, -107, 
    -107, -107, 126, 127, -133, 134, 135, -119, 142, -50, -107, -107, -107,
    -107, -107, -107, -107, -134, -107, -107, -109, 179, -107, -133, 211, -
    107, -107, -107, -109, -109, -109, -109, -109, -109, -109, -109, -109, 
    -109, -109, -109, -107, -107, -107, -107, -107, -107, -107, -107, -107,
    -107, -107, -107, -107, -107, -107, -107, -107, -118, -107, -107, -94, 
    -115, -107, -118, -78, -116, -95, -122, -115, -118, -123, -77]), 'RSQ':
    ([59, 63, 79, 100, 104, 105, 106, 107, 108, 109, 110, 115, 129, 141, 
    145, 146, 147, 148, 149, 164, 165, 171, 172, 173, 194, 197, 198, 201, 
    213, 239, 240, 253, 254, 255, 256, 269, 277, 281, 284, 289, 295, 296, 
    300, 303, 306], [-146, 66, -146, -103, -111, -110, -42, -43, -105, -104,
    -106, 154, -38, -46, -1, -1, -47, -48, -49, -102, -44, -39, -40, -41, -
    30, -33, -34, -37, -108, -108, -45, -31, -32, -35, -36, 277, -152, -136,
    -69, -137, -89, -108, 303, -152, -70]), 'RPAREN': ([64, 68, 73, 74, 75,
    100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 126, 127, 129, 141, 
    143, 144, 145, 146, 147, 148, 149, 160, 161, 162, 163, 164, 165, 166, 
    167, 168, 169, 171, 172, 173, 175, 176, 181, 182, 186, 187, 193, 194, 
    197, 198, 201, 203, 204, 205, 208, 210, 211, 213, 216, 232, 233, 234, 
    238, 240, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 
    258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 274, 275, 276, 277, 
    281, 284, 289, 290, 295, 303, 306], [67, -1, 111, -67, -68, -103, -113,
    -112, -111, -110, -42, -43, -105, -104, -106, -1, -1, -38, -46, -1, -1,
    -1, -1, -47, -48, -49, 207, -80, -81, -149, -102, -44, 209, -85, -86, -
    150, -39, -40, -41, 213, 214, 218, -18, -22, -23, -29, -30, -33, -34, -
    37, -140, -140, -140, -82, -87, -107, -108, 242, -1, -1, -1, -1, -45, -
    19, -20, -21, -24, -25, -26, -27, -28, -31, -32, -35, -36, -71, -75, -
    72, -73, -83, -88, -108, -90, -91, -135, -74, 281, -92, -152, -136, -69,
    -137, -93, -89, -152, -70]), 'LEE': ([72, 85, 86, 87, 88, 116, 117, 118,
    119, 124, 125, 278, 285, 287, 293, 298, 301, 304, 310, 311, 312, 313, 
    314], [92, 92, 92, 92, 92, -50, 92, 92, 92, 92, 92, -118, -94, -115, -
    118, -78, -116, -95, -122, -115, -118, -123, -77]), 'ESCRIBE': ([72, 85,
    86, 87, 88, 116, 117, 118, 119, 124, 125, 278, 285, 287, 293, 298, 301,
    304, 310, 311, 312, 313, 314], [93, 93, 93, 93, 93, -50, 93, 93, 93, 93,
    93, -118, -94, -115, -118, -78, -116, -95, -122, -115, -118, -123, -77]
    ), 'SI': ([72, 85, 86, 87, 88, 116, 117, 118, 119, 124, 125, 278, 285, 
    287, 293, 298, 301, 304, 310, 311, 312, 313, 314], [96, 96, 96, 96, 96,
    -50, 96, 96, 96, 96, 96, -118, -94, -115, -118, -78, -116, -95, -122, -
    115, -118, -123, -77]), 'MIENTRAS': ([72, 85, 86, 87, 88, 116, 117, 118,
    119, 124, 125, 278, 285, 287, 293, 298, 301, 304, 310, 311, 312, 313, 
    314], [98, 98, 98, 98, 98, -50, 98, 98, 98, 98, 98, -118, -94, -115, -
    118, -78, -116, -95, -122, -115, -118, -123, -77]), 'DESDE': ([72, 85, 
    86, 87, 88, 116, 117, 118, 119, 124, 125, 278, 285, 287, 293, 298, 301,
    304, 310, 311, 312, 313, 314], [99, 99, 99, 99, 99, -50, 99, 99, 99, 99,
    99, -118, -94, -115, -118, -78, -116, -95, -122, -115, -118, -123, -77]
    ), 'RETURN': ([72, 85, 86, 87, 88, 116, 117, 118, 119, 124, 125, 278, 
    285, 287, 293, 298, 301, 304, 310, 311, 312, 313, 314], [101, 101, 101,
    101, 101, -50, 101, 101, 101, 101, 101, -118, -94, -115, -118, -78, -
    116, -95, -122, -115, -118, -123, -77]), 'RBRACKET': ([72, 81, 85, 86, 
    87, 88, 91, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 155, 156,
    157, 158, 159, 278, 285, 287, 293, 298, 301, 304, 310, 311, 312, 313, 
    314], [-1, 116, -1, -1, -1, -1, -60, -50, -1, -1, -1, -54, -55, -56, -
    57, -1, -1, -51, -52, -53, -58, -59, -118, -94, -115, -118, -78, -116, 
    -95, -122, -115, -118, -123, -77]), 'CTE_F': ([72, 85, 86, 87, 88, 116,
    117, 118, 119, 124, 125, 126, 127, 134, 135, 137, 142, 174, 178, 179, 
    183, 184, 185, 188, 189, 190, 191, 192, 195, 196, 199, 200, 211, 212, 
    219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 236, 237, 
    238, 278, 282, 283, 285, 287, 291, 293, 298, 301, 304, 310, 311, 312, 
    313, 314], [108, 108, 108, 108, 108, -50, 108, 108, 108, 108, 108, 108,
    108, 108, 108, -109, 108, -107, 108, 108, -109, -109, -109, -109, -109,
    -109, -109, -109, -109, -109, -109, -109, -107, 108, 108, 108, 108, 108,
    108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, -118, 108, -107,
    -94, -115, 108, -118, -78, -116, -95, -122, -115, -118, -123, -77]),
    'CTE_C': ([72, 85, 86, 87, 88, 116, 117, 118, 119, 124, 125, 126, 127, 
    134, 135, 137, 142, 174, 178, 179, 183, 184, 185, 188, 189, 190, 191, 
    192, 195, 196, 199, 200, 211, 212, 219, 220, 221, 222, 223, 224, 225, 
    226, 227, 228, 229, 230, 236, 237, 238, 278, 282, 283, 285, 287, 291, 
    293, 298, 301, 304, 310, 311, 312, 313, 314], [109, 109, 109, 109, 109,
    -50, 109, 109, 109, 109, 109, 109, 109, 109, 109, -109, 109, -107, 109,
    109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, 
    -109, -107, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
    109, 109, 109, 109, -118, 109, -107, -94, -115, 109, -118, -78, -116, -
    95, -122, -115, -118, -123, -77]), 'CTE_S': ([72, 85, 86, 87, 88, 116, 
    117, 118, 119, 124, 125, 126, 127, 134, 135, 137, 142, 174, 178, 179, 
    183, 184, 185, 188, 189, 190, 191, 192, 195, 196, 199, 200, 211, 212, 
    219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 236, 237, 
    238, 278, 282, 283, 285, 287, 291, 293, 298, 301, 304, 310, 311, 312, 
    313, 314], [110, 110, 110, 110, 110, -50, 110, 110, 110, 110, 110, 110,
    110, 110, 110, -109, 110, -107, 110, 110, -109, -109, -109, -109, -109,
    -109, -109, -109, -109, -109, -109, -109, -107, 110, 110, 110, 110, 110,
    110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, -118, 110, -107,
    -94, -115, 110, -118, -78, -116, -95, -122, -115, -118, -123, -77]),
    'MULT': ([84, 94, 100, 105, 106, 107, 108, 109, 110, 129, 141, 146, 147,
    148, 149, 164, 165, 171, 172, 173, 213, 240, 277, 281, 284, 289, 295, 
    303, 306], [-44, -102, -103, -110, -42, -43, -105, -104, -106, -38, -46,
    199, -47, -48, -49, -102, -44, -39, -40, -41, -108, -45, -152, -136, -
    69, -137, -89, -152, -70]), 'DIV': ([84, 94, 100, 105, 106, 107, 108, 
    109, 110, 129, 141, 146, 147, 148, 149, 164, 165, 171, 172, 173, 213, 
    240, 277, 281, 284, 289, 295, 303, 306], [-44, -102, -103, -110, -42, -
    43, -105, -104, -106, -38, -46, 200, -47, -48, -49, -102, -44, -39, -40,
    -41, -108, -45, -152, -136, -69, -137, -89, -152, -70]), 'PLUS': ([84, 
    94, 100, 104, 105, 106, 107, 108, 109, 110, 129, 141, 145, 146, 147, 
    148, 149, 164, 165, 171, 172, 173, 198, 201, 213, 240, 255, 256, 277, 
    281, 284, 289, 295, 303, 306], [-44, -102, -103, -111, -110, -42, -43, 
    -105, -104, -106, -38, -46, 195, -1, -47, -48, -49, -102, -44, -39, -40,
    -41, -34, -37, -108, -45, -35, -36, -152, -136, -69, -137, -89, -152, -
    70]), 'MINUS': ([84, 94, 100, 104, 105, 106, 107, 108, 109, 110, 129, 
    141, 145, 146, 147, 148, 149, 164, 165, 171, 172, 173, 198, 201, 213, 
    240, 255, 256, 277, 281, 284, 289, 295, 303, 306], [-44, -102, -103, -
    111, -110, -42, -43, -105, -104, -106, -38, -46, 196, -1, -47, -48, -49,
    -102, -44, -39, -40, -41, -34, -37, -108, -45, -35, -36, -152, -136, -
    69, -137, -89, -152, -70]), 'NOT_EQ': ([84, 94, 100, 103, 104, 105, 106,
    107, 108, 109, 110, 129, 141, 144, 145, 146, 147, 148, 149, 164, 165, 
    171, 172, 173, 194, 197, 198, 201, 213, 240, 253, 254, 255, 256, 277, 
    281, 284, 289, 295, 303, 306], [-44, -102, -103, -112, -111, -110, -42,
    -43, -105, -104, -106, -38, -46, 188, -1, -1, -47, -48, -49, -102, -44,
    -39, -40, -41, -30, -33, -34, -37, -108, -45, -31, -32, -35, -36, -152,
    -136, -69, -137, -89, -152, -70]), 'GREATER_EQ': ([84, 94, 100, 103, 
    104, 105, 106, 107, 108, 109, 110, 129, 141, 144, 145, 146, 147, 148, 
    149, 164, 165, 171, 172, 173, 194, 197, 198, 201, 213, 240, 253, 254, 
    255, 256, 277, 281, 284, 289, 295, 303, 306], [-44, -102, -103, -112, -
    111, -110, -42, -43, -105, -104, -106, -38, -46, 189, -1, -1, -47, -48,
    -49, -102, -44, -39, -40, -41, -30, -33, -34, -37, -108, -45, -31, -32,
    -35, -36, -152, -136, -69, -137, -89, -152, -70]), 'LESS_EQ': ([84, 94,
    100, 103, 104, 105, 106, 107, 108, 109, 110, 129, 141, 144, 145, 146, 
    147, 148, 149, 164, 165, 171, 172, 173, 194, 197, 198, 201, 213, 240, 
    253, 254, 255, 256, 277, 281, 284, 289, 295, 303, 306], [-44, -102, -
    103, -112, -111, -110, -42, -43, -105, -104, -106, -38, -46, 190, -1, -
    1, -47, -48, -49, -102, -44, -39, -40, -41, -30, -33, -34, -37, -108, -
    45, -31, -32, -35, -36, -152, -136, -69, -137, -89, -152, -70]),
    'GREATER': ([84, 94, 100, 103, 104, 105, 106, 107, 108, 109, 110, 129, 
    141, 144, 145, 146, 147, 148, 149, 164, 165, 171, 172, 173, 194, 197, 
    198, 201, 213, 240, 253, 254, 255, 256, 277, 281, 284, 289, 295, 303, 
    306], [-44, -102, -103, -112, -111, -110, -42, -43, -105, -104, -106, -
    38, -46, 191, -1, -1, -47, -48, -49, -102, -44, -39, -40, -41, -30, -33,
    -34, -37, -108, -45, -31, -32, -35, -36, -152, -136, -69, -137, -89, -
    152, -70]), 'LESS': ([84, 94, 100, 103, 104, 105, 106, 107, 108, 109, 
    110, 129, 141, 144, 145, 146, 147, 148, 149, 164, 165, 171, 172, 173, 
    194, 197, 198, 201, 213, 240, 253, 254, 255, 256, 277, 281, 284, 289, 
    295, 303, 306], [-44, -102, -103, -112, -111, -110, -42, -43, -105, -
    104, -106, -38, -46, 192, -1, -1, -47, -48, -49, -102, -44, -39, -40, -
    41, -30, -33, -34, -37, -108, -45, -31, -32, -35, -36, -152, -136, -69,
    -137, -89, -152, -70]), 'COMPAR': ([84, 94, 100, 102, 103, 104, 105, 
    106, 107, 108, 109, 110, 129, 141, 143, 144, 145, 146, 147, 148, 149, 
    164, 165, 171, 172, 173, 187, 193, 194, 197, 198, 201, 213, 240, 248, 
    249, 250, 251, 252, 253, 254, 255, 256, 277, 281, 284, 289, 295, 303, 
    306], [-44, -102, -103, -113, -112, -111, -110, -42, -43, -105, -104, -
    106, -38, -46, 183, -1, -1, -1, -47, -48, -49, -102, -44, -39, -40, -41,
    -23, -29, -30, -33, -34, -37, -108, -45, -24, -25, -26, -27, -28, -31, 
    -32, -35, -36, -152, -136, -69, -137, -89, -152, -70]), 'AND': ([84, 94,
    100, 102, 103, 104, 105, 106, 107, 108, 109, 110, 129, 141, 143, 144, 
    145, 146, 147, 148, 149, 164, 165, 171, 172, 173, 187, 193, 194, 197, 
    198, 201, 213, 240, 248, 249, 250, 251, 252, 253, 254, 255, 256, 277, 
    281, 284, 289, 295, 303, 306], [-44, -102, -103, -113, -112, -111, -110,
    -42, -43, -105, -104, -106, -38, -46, 184, -1, -1, -1, -47, -48, -49, -
    102, -44, -39, -40, -41, -23, -29, -30, -33, -34, -37, -108, -45, -24, 
    -25, -26, -27, -28, -31, -32, -35, -36, -152, -136, -69, -137, -89, -
    152, -70]), 'OR': ([84, 94, 100, 102, 103, 104, 105, 106, 107, 108, 109,
    110, 129, 141, 143, 144, 145, 146, 147, 148, 149, 164, 165, 171, 172, 
    173, 187, 193, 194, 197, 198, 201, 213, 240, 248, 249, 250, 251, 252, 
    253, 254, 255, 256, 277, 281, 284, 289, 295, 303, 306], [-44, -102, -
    103, -113, -112, -111, -110, -42, -43, -105, -104, -106, -38, -46, 185,
    -1, -1, -1, -47, -48, -49, -102, -44, -39, -40, -41, -23, -29, -30, -33,
    -34, -37, -108, -45, -24, -25, -26, -27, -28, -31, -32, -35, -36, -152,
    -136, -69, -137, -89, -152, -70]), 'EQ': ([84, 94, 97, 100, 102, 103, 
    104, 105, 106, 107, 108, 109, 110, 129, 140, 141, 143, 144, 145, 146, 
    147, 148, 149, 164, 165, 171, 172, 173, 180, 182, 186, 187, 193, 194, 
    197, 198, 201, 213, 240, 245, 246, 247, 248, 249, 250, 251, 252, 253, 
    254, 255, 256, 277, 281, 284, 289, 295, 303, 306], [-44, -102, 137, -
    103, -113, -112, -111, -110, -42, -43, -105, -104, -106, -38, -120, -46,
    -1, -1, -1, -1, -47, -48, -49, -102, -44, -39, -40, -41, 217, -18, -22,
    -23, -29, -30, -33, -34, -37, -108, -45, -19, -20, -21, -24, -25, -26, 
    -27, -28, -31, -32, -35, -36, -152, -136, -69, -137, -89, -152, -70]),
    'DET': ([94, 130, 164], [-99, 171, -99]), 'TRAN': ([94, 131, 164], [-
    100, 172, -100]), 'INV': ([94, 132, 164], [-101, 173, -101]), 'SINO': (
    [116, 278, 286, 292], [-50, -115, -118, 297]), 'ENTONCES': ([214, 241],
    [-117, 270]), 'HAZ': ([242, 271], [-117, 279]), 'HASTA': ([272, 280, 
    288], [-103, -114, 294]), 'HACER': ([299, 302, 305, 307], [-103, -119, 
    -121, 308])}
_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 = {'PROG': ([0], [1]), 'r_new_goto': ([0, 278, 287, 311], [2,
    286, 293, 312]), 'VARS': ([5, 111], [6, 150]), 'EMPTY': ([5, 7, 9, 35, 
    39, 41, 68, 72, 85, 86, 87, 88, 97, 111, 117, 118, 119, 124, 125, 126, 
    127, 143, 144, 145, 146, 232, 233, 234, 238, 257], [8, 14, 17, 14, 14, 
    14, 75, 91, 91, 91, 91, 91, 138, 8, 91, 91, 91, 91, 91, 162, 168, 186, 
    193, 197, 201, 260, 260, 260, 267, 17]), 'r_change_local_context': ([6],
    [9]), 'TIPO': ([7, 35, 39, 41], [10, 48, 52, 54]), 'FUNCTION': ([9, 257
    ], [15, 273]), 'r_new_function': ([9, 257], [16, 16]), 'r_set_var_type':
    ([11, 12, 13, 76, 77, 78], [18, 19, 20, 112, 113, 114]),
    'r_complete_goto': ([15, 301], [21, 304]), 'VAR_INT': ([18, 36, 50], [
    23, 49, 58]), 'LIST_ID': ([18, 36, 50], [24, 24, 24]), 'VAR_TIPO': ([19,
    20], [26, 28]), 'r_change_global_context': ([21], [29]), 'TIPO_FUNC': (
    [22], [30]), 'r_new_variable': ([25, 27, 203, 204, 205], [37, 40, 232, 
    233, 234]), 'r_new_arr': ([25], [38]), 'r_display_var_table': ([29], [
    42]), 'r_clear_mem': ([30], [43]), 'r_set_fun_type': ([31, 32, 33, 34],
    [44, 45, 46, 47]), 'MAIN': ([42], [55]), 'r_display_const': ([55], [60]
    ), 'r_flush_mem': ([56], [61]), 'r_set_fun_name': ([57], [62]),
    'r_new_dim': ([59, 79], [63, 115]), 'r_new_vartable': ([62], [65]),
    'r_generate_arr': ([66, 154], [70, 206]), 'BLOQUE': ([67, 202, 270, 279,
    297, 309], [71, 231, 278, 287, 301, 310]), 'PARAMETROS': ([68], [73]),
    'AUX_PARAM': ([68, 259], [74, 274]), 'r_clear_arr': ([70, 206], [80, 
    235]), 'OPCION_BLOQUE': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125],
    [81, 120, 121, 122, 123, 155, 156, 157, 158, 159]), 'LECTURA': ([72, 85,
    86, 87, 88, 117, 118, 119, 124, 125], [82, 82, 82, 82, 82, 82, 82, 82, 
    82, 82]), 'ESCRITURA': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125],
    [83, 83, 83, 83, 83, 83, 83, 83, 83, 83]), 'LLAMADA': ([72, 85, 86, 87,
    88, 117, 118, 119, 124, 125, 126, 127, 134, 135, 142, 178, 179, 212, 
    219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 236, 237, 
    238, 282, 291], [84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 165, 165, 165,
    165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 
    165, 165, 165, 165, 165, 165, 165, 165]), 'IF_STMT': ([72, 85, 86, 87, 
    88, 117, 118, 119, 124, 125], [85, 85, 85, 85, 85, 85, 85, 85, 85, 85]),
    'IF_ELSE_STMT': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125], [86, 86,
    86, 86, 86, 86, 86, 86, 86, 86]), 'MIENTRAS_CICLO': ([72, 85, 86, 87, 
    88, 117, 118, 119, 124, 125], [87, 87, 87, 87, 87, 87, 87, 87, 87, 87]),
    'DESDE_CICLO': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125], [88, 88,
    88, 88, 88, 88, 88, 88, 88, 88]), 'ASIGNACION': ([72, 85, 86, 87, 88, 
    117, 118, 119, 124, 125, 178], [89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
    215]), 'RETURN_STM': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125], [
    90, 90, 90, 90, 90, 90, 90, 90, 90, 90]), 'r_new_lparen': ([72, 85, 86,
    87, 88, 117, 118, 119, 124, 125, 126, 127, 134, 135, 142, 174, 178, 179,
    211, 212, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 
    236, 237, 238, 282, 283, 291], [95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
    95, 95, 95, 95, 95, 212, 95, 95, 238, 95, 95, 95, 95, 95, 95, 95, 95, 
    95, 95, 95, 95, 95, 95, 95, 95, 95, 291, 95]), 'EXPRESION': ([72, 85, 
    86, 87, 88, 117, 118, 119, 124, 125, 126, 127, 134, 135, 142, 178, 179,
    219, 220, 221, 236, 237, 238, 282], [97, 97, 97, 97, 97, 97, 97, 97, 97,
    97, 163, 169, 175, 176, 181, 97, 216, 245, 246, 247, 163, 169, 268, 268
    ]), 'TLEVEL_EXPRESION': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125, 
    126, 127, 134, 135, 142, 178, 179, 219, 220, 221, 222, 223, 224, 225, 
    226, 236, 237, 238, 282], [102, 102, 102, 102, 102, 102, 102, 102, 102,
    102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 248, 249, 250, 
    251, 252, 102, 102, 102, 102]), 'SLEVEL_EXPRESION': ([72, 85, 86, 87, 
    88, 117, 118, 119, 124, 125, 126, 127, 134, 135, 142, 178, 179, 212, 
    219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 236, 237, 238, 282, 
    291], [103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103,
    103, 103, 103, 103, 239, 103, 103, 103, 103, 103, 103, 103, 103, 253, 
    254, 103, 103, 103, 103, 296]), 'FLEVEL_EXPRESION': ([72, 85, 86, 87, 
    88, 117, 118, 119, 124, 125, 126, 127, 134, 135, 142, 178, 179, 212, 
    219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 236, 237, 
    238, 282, 291], [104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
    104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 
    104, 104, 104, 255, 256, 104, 104, 104, 104, 104]), 'VALUE_EXPRESION':
    ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125, 126, 127, 134, 135, 142,
    178, 179, 212, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 
    230, 236, 237, 238, 282, 291], [105, 105, 105, 105, 105, 105, 105, 105,
    105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 
    105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105]),
    'ARR': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125, 126, 127, 134, 
    135, 142, 178, 179, 212, 219, 220, 221, 222, 223, 224, 225, 226, 227, 
    228, 229, 230, 236, 237, 238, 282, 291], [106, 106, 106, 106, 106, 106,
    106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 
    106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 
    106]), 'CONSTANTE': ([72, 85, 86, 87, 88, 117, 118, 119, 124, 125, 126,
    127, 134, 135, 142, 178, 179, 212, 219, 220, 221, 222, 223, 224, 225, 
    226, 227, 228, 229, 230, 236, 237, 238, 282, 291], [107, 107, 107, 107,
    107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 
    107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 
    107, 107, 107]), 'r_verify_function': ([94, 164], [128, 128]),
    'r_new_id': ([94, 164], [129, 129]), 'r_new_det': ([94, 164], [130, 130
    ]), 'r_new_tran': ([94, 164], [131, 131]), 'r_new_inv': ([94, 164], [
    132, 132]), 'r_register_arr': ([94, 164], [133, 133]), 'ASIGNACION_AUX':
    ([97], [136]), 'r_new_migajita': ([98, 302], [139, 305]), 'r_new_c_int':
    ([100, 272, 299], [141, 280, 302]), 'r_new_quadruple': ([102], [143]),
    'r_new_quadruple_tlevel': ([103], [144]), 'r_new_quadruple_slevel': ([
    104], [145]), 'r_new_quadruple_flevel': ([105], [146]), 'r_new_c_float':
    ([108], [147]), 'r_new_c_char': ([109], [148]), 'r_new_c_string': ([110
    ], [149]), 'r_insert_type': ([112, 113, 114], [151, 152, 153]),
    'PARAMETRO_LECTURA': ([126], [160]), 'PARAMETRO_LECTURA_AUX': ([126, 
    236], [161, 263]), 'PARAMETRO_ESCRITURA': ([127], [166]),
    'PARAMETRO_ESCRITURA_AUX': ([127, 237], [167, 264]), 'r_generate_era':
    ([128], [170]), 'r_new_equal': ([136, 280], [177, 288]),
    'r_new_operator': ([137, 183, 184, 185, 188, 189, 190, 191, 192, 195, 
    196, 199, 200, 217], [178, 219, 220, 221, 222, 223, 224, 225, 226, 227,
    228, 229, 230, 243]), 'r_new_id_for': ([140], [180]), 'EXPRESION_AUX':
    ([143], [182]), 'TLEVEL_EXPRESION_AUX': ([144], [187]),
    'SLEVEL_EXPRESION_AUX': ([145], [194]), 'FLEVEL_EXPRESION_AUX': ([146],
    [198]), 'r_insert_parameters': ([150], [202]), 'r_new_read': ([163], [
    208]), 'r_new_write': ([169], [210]), 'r_new_rparen': ([213, 239, 265, 
    296], [240, 269, 275, 300]), 'r_new_gotof': ([214, 242, 308], [241, 271,
    309]), 'r_generate_return': ([218], [244]), 'r_end_function': ([231], [
    257]), 'NEXT_PARAM': ([232, 233, 234], [258, 261, 262]),
    'TIPO_PARAMETROS': ([238], [265]), 'TIPO_PARAMETROS_AUX': ([238, 282],
    [266, 290]), 'r_verify_parameter': ([268], [276]), 'r_quad_arr': ([277,
    303], [284, 306]), 'r_complete_gotof': ([278, 286, 293, 312], [285, 292,
    298, 313]), 'r_verify_last_parameter': ([281], [289]),
    'r_generate_gosub': ([289], [295]), 'r_compara_for': ([305], [307]),
    'r_update_for': ([310], [311]), 'r_clear_for': ([313], [314])}
_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' -> PROG", "S'", 1, None, None, None), (
    'EMPTY -> <empty>', 'EMPTY', 0, 'p_EMPTY', 'parser.py', 25), (
    'MAIN -> PRINCIPAL r_flush_mem LPAREN RPAREN BLOQUE', 'MAIN', 5,
    'p_MAIN', 'parser.py', 29), (
    'PROG -> r_new_goto PROGRAMA ID SEMI_COLON VARS r_change_local_context FUNCTION r_complete_goto r_change_global_context r_display_var_table MAIN r_display_const'
    , 'PROG', 12, 'p_PROG', 'parser.py', 33), ('VARS -> VAR TIPO', 'VARS', 
    2, 'p_VARS', 'parser.py', 37), ('VARS -> EMPTY', 'VARS', 1, 'p_VARS',
    'parser.py', 38), ('TIPO -> INT r_set_var_type VAR_INT SEMI_COLON TIPO',
    'TIPO', 5, 'p_TIPO', 'parser.py', 42), (
    'TIPO -> FLOAT r_set_var_type VAR_TIPO SEMI_COLON TIPO', 'TIPO', 5,
    'p_TIPO', 'parser.py', 43), (
    'TIPO -> CHAR r_set_var_type VAR_TIPO SEMI_COLON TIPO', 'TIPO', 5,
    'p_TIPO', 'parser.py', 44), ('TIPO -> EMPTY', 'TIPO', 1, 'p_TIPO',
    'parser.py', 45), ('VAR_INT -> LIST_ID COMMA VAR_INT', 'VAR_INT', 3,
    'p_VAR_INT', 'parser.py', 49), (
    'VAR_INT -> ID r_new_variable COMMA VAR_INT', 'VAR_INT', 4, 'p_VAR_INT',
    'parser.py', 50), ('VAR_INT -> LIST_ID', 'VAR_INT', 1, 'p_VAR_INT',
    'parser.py', 51), ('VAR_INT -> ID r_new_variable', 'VAR_INT', 2,
    'p_VAR_INT', 'parser.py', 52), ('VAR_TIPO -> ID r_new_variable COMMA',
    'VAR_TIPO', 3, 'p_VAR_TIPO', 'parser.py', 56), (
    'VAR_TIPO -> ID r_new_variable', 'VAR_TIPO', 2, 'p_VAR_TIPO',
    'parser.py', 57), (
    'LIST_ID -> ID r_new_arr LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr'
    , 'LIST_ID', 8, 'p_LIST_ID', 'parser.py', 61), (
    'LIST_ID -> ID r_new_arr LSQ CTE_I r_new_dim RSQ LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr'
    , 'LIST_ID', 12, 'p_LIST_ID', 'parser.py', 62), (
    'EXPRESION -> TLEVEL_EXPRESION r_new_quadruple EXPRESION_AUX',
    'EXPRESION', 3, 'p_EXPRESION', 'parser.py', 70), (
    'EXPRESION_AUX -> COMPAR r_new_operator EXPRESION', 'EXPRESION_AUX', 3,
    'p_EXPRESION_AUX', 'parser.py', 74), (
    'EXPRESION_AUX -> AND r_new_operator EXPRESION', 'EXPRESION_AUX', 3,
    'p_EXPRESION_AUX', 'parser.py', 75), (
    'EXPRESION_AUX -> OR r_new_operator EXPRESION', 'EXPRESION_AUX', 3,
    'p_EXPRESION_AUX', 'parser.py', 76), ('EXPRESION_AUX -> EMPTY',
    'EXPRESION_AUX', 1, 'p_EXPRESION_AUX', 'parser.py', 77), (
    'TLEVEL_EXPRESION -> SLEVEL_EXPRESION r_new_quadruple_tlevel TLEVEL_EXPRESION_AUX'
    , 'TLEVEL_EXPRESION', 3, 'p_TLEVEL_EXPRESION', 'parser.py', 81), (
    'TLEVEL_EXPRESION_AUX -> NOT_EQ r_new_operator TLEVEL_EXPRESION',
    'TLEVEL_EXPRESION_AUX', 3, 'p_TLEVEL_EXPRESION_AUX', 'parser.py', 85),
    ('TLEVEL_EXPRESION_AUX -> GREATER_EQ r_new_operator TLEVEL_EXPRESION',
    'TLEVEL_EXPRESION_AUX', 3, 'p_TLEVEL_EXPRESION_AUX', 'parser.py', 86),
    ('TLEVEL_EXPRESION_AUX -> LESS_EQ r_new_operator TLEVEL_EXPRESION',
    'TLEVEL_EXPRESION_AUX', 3, 'p_TLEVEL_EXPRESION_AUX', 'parser.py', 87),
    ('TLEVEL_EXPRESION_AUX -> GREATER r_new_operator TLEVEL_EXPRESION',
    'TLEVEL_EXPRESION_AUX', 3, 'p_TLEVEL_EXPRESION_AUX', 'parser.py', 88),
    ('TLEVEL_EXPRESION_AUX -> LESS r_new_operator TLEVEL_EXPRESION',
    'TLEVEL_EXPRESION_AUX', 3, 'p_TLEVEL_EXPRESION_AUX', 'parser.py', 89),
    ('TLEVEL_EXPRESION_AUX -> EMPTY', 'TLEVEL_EXPRESION_AUX', 1,
    'p_TLEVEL_EXPRESION_AUX', 'parser.py', 90), (
    'SLEVEL_EXPRESION -> FLEVEL_EXPRESION r_new_quadruple_slevel SLEVEL_EXPRESION_AUX'
    , 'SLEVEL_EXPRESION', 3, 'p_SLEVEL_EXPRESION', 'parser.py', 94), (
    'SLEVEL_EXPRESION_AUX -> PLUS r_new_operator SLEVEL_EXPRESION',
    'SLEVEL_EXPRESION_AUX', 3, 'p_SLEVEL_EXPRESION_AUX', 'parser.py', 98),
    ('SLEVEL_EXPRESION_AUX -> MINUS r_new_operator SLEVEL_EXPRESION',
    'SLEVEL_EXPRESION_AUX', 3, 'p_SLEVEL_EXPRESION_AUX', 'parser.py', 99),
    ('SLEVEL_EXPRESION_AUX -> EMPTY', 'SLEVEL_EXPRESION_AUX', 1,
    'p_SLEVEL_EXPRESION_AUX', 'parser.py', 100), (
    'FLEVEL_EXPRESION -> VALUE_EXPRESION r_new_quadruple_flevel FLEVEL_EXPRESION_AUX'
    , 'FLEVEL_EXPRESION', 3, 'p_FLEVEL_EXPRESION', 'parser.py', 104), (
    'FLEVEL_EXPRESION_AUX -> MULT r_new_operator FLEVEL_EXPRESION',
    'FLEVEL_EXPRESION_AUX', 3, 'p_FLEVEL_EXPRESION_AUX', 'parser.py', 108),
    ('FLEVEL_EXPRESION_AUX -> DIV r_new_operator FLEVEL_EXPRESION',
    'FLEVEL_EXPRESION_AUX', 3, 'p_FLEVEL_EXPRESION_AUX', 'parser.py', 109),
    ('FLEVEL_EXPRESION_AUX -> EMPTY', 'FLEVEL_EXPRESION_AUX', 1,
    'p_FLEVEL_EXPRESION_AUX', 'parser.py', 110), (
    'VALUE_EXPRESION -> ID r_new_id', 'VALUE_EXPRESION', 2,
    'p_VALUE_EXPRESION', 'parser.py', 114), (
    'VALUE_EXPRESION -> ID r_new_det DET', 'VALUE_EXPRESION', 3,
    'p_VALUE_EXPRESION', 'parser.py', 115), (
    'VALUE_EXPRESION -> ID r_new_tran TRAN', 'VALUE_EXPRESION', 3,
    'p_VALUE_EXPRESION', 'parser.py', 116), (
    'VALUE_EXPRESION -> ID r_new_inv INV', 'VALUE_EXPRESION', 3,
    'p_VALUE_EXPRESION', 'parser.py', 117), ('VALUE_EXPRESION -> ARR',
    'VALUE_EXPRESION', 1, 'p_VALUE_EXPRESION', 'parser.py', 118), (
    'VALUE_EXPRESION -> CONSTANTE', 'VALUE_EXPRESION', 1,
    'p_VALUE_EXPRESION', 'parser.py', 119), ('VALUE_EXPRESION -> LLAMADA',
    'VALUE_EXPRESION', 1, 'p_VALUE_EXPRESION', 'parser.py', 120), (
    'VALUE_EXPRESION -> r_new_lparen LPAREN EXPRESION RPAREN r_new_rparen',
    'VALUE_EXPRESION', 5, 'p_VALUE_EXPRESION', 'parser.py', 121), (
    'CONSTANTE -> CTE_I r_new_c_int', 'CONSTANTE', 2, 'p_CONSTANTE',
    'parser.py', 125), ('CONSTANTE -> CTE_F r_new_c_float', 'CONSTANTE', 2,
    'p_CONSTANTE', 'parser.py', 126), ('CONSTANTE -> CTE_C r_new_c_char',
    'CONSTANTE', 2, 'p_CONSTANTE', 'parser.py', 127), (
    'CONSTANTE -> CTE_S r_new_c_string', 'CONSTANTE', 2, 'p_CONSTANTE',
    'parser.py', 128), ('BLOQUE -> LBRACKET OPCION_BLOQUE RBRACKET',
    'BLOQUE', 3, 'p_BLOQUE', 'parser.py', 136), (
    'OPCION_BLOQUE -> LECTURA SEMI_COLON OPCION_BLOQUE', 'OPCION_BLOQUE', 3,
    'p_OPCION_BLOQUE', 'parser.py', 140), (
    'OPCION_BLOQUE -> ESCRITURA SEMI_COLON OPCION_BLOQUE', 'OPCION_BLOQUE',
    3, 'p_OPCION_BLOQUE', 'parser.py', 141), (
    'OPCION_BLOQUE -> LLAMADA SEMI_COLON OPCION_BLOQUE', 'OPCION_BLOQUE', 3,
    'p_OPCION_BLOQUE', 'parser.py', 142), (
    'OPCION_BLOQUE -> IF_STMT OPCION_BLOQUE', 'OPCION_BLOQUE', 2,
    'p_OPCION_BLOQUE', 'parser.py', 143), (
    'OPCION_BLOQUE -> IF_ELSE_STMT OPCION_BLOQUE', 'OPCION_BLOQUE', 2,
    'p_OPCION_BLOQUE', 'parser.py', 144), (
    'OPCION_BLOQUE -> MIENTRAS_CICLO OPCION_BLOQUE', 'OPCION_BLOQUE', 2,
    'p_OPCION_BLOQUE', 'parser.py', 145), (
    'OPCION_BLOQUE -> DESDE_CICLO OPCION_BLOQUE', 'OPCION_BLOQUE', 2,
    'p_OPCION_BLOQUE', 'parser.py', 146), (
    'OPCION_BLOQUE -> ASIGNACION SEMI_COLON OPCION_BLOQUE', 'OPCION_BLOQUE',
    3, 'p_OPCION_BLOQUE', 'parser.py', 147), (
    'OPCION_BLOQUE -> RETURN_STM SEMI_COLON OPCION_BLOQUE', 'OPCION_BLOQUE',
    3, 'p_OPCION_BLOQUE', 'parser.py', 148), ('OPCION_BLOQUE -> EMPTY',
    'OPCION_BLOQUE', 1, 'p_OPCION_BLOQUE', 'parser.py', 149), (
    'FUNCTION -> r_new_function FUNCION TIPO_FUNC r_clear_mem ID r_set_fun_name r_new_vartable LPAREN PARAMETROS RPAREN VARS r_insert_parameters BLOQUE r_end_function FUNCTION'
    , 'FUNCTION', 15, 'p_FUNCTION', 'parser.py', 159), ('FUNCTION -> EMPTY',
    'FUNCTION', 1, 'p_FUNCTION', 'parser.py', 160), (
    'TIPO_FUNC -> INT r_set_fun_type', 'TIPO_FUNC', 2, 'p_TIPO_FUNC',
    'parser.py', 164), ('TIPO_FUNC -> FLOAT r_set_fun_type', 'TIPO_FUNC', 2,
    'p_TIPO_FUNC', 'parser.py', 165), ('TIPO_FUNC -> CHAR r_set_fun_type',
    'TIPO_FUNC', 2, 'p_TIPO_FUNC', 'parser.py', 166), (
    'TIPO_FUNC -> VOID r_set_fun_type', 'TIPO_FUNC', 2, 'p_TIPO_FUNC',
    'parser.py', 167), ('PARAMETROS -> AUX_PARAM', 'PARAMETROS', 1,
    'p_PARAMETROS', 'parser.py', 171), ('PARAMETROS -> EMPTY', 'PARAMETROS',
    1, 'p_PARAMETROS', 'parser.py', 172), (
    'ARR -> ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr'
    , 'ARR', 8, 'p_ARR', 'parser.py', 176), (
    'ARR -> ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr'
    , 'ARR', 13, 'p_ARR', 'parser.py', 177), (
    'AUX_PARAM -> INT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM'
    , 'AUX_PARAM', 6, 'p_AUX_PARAM', 'parser.py', 182), (
    'AUX_PARAM -> FLOAT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM'
    , 'AUX_PARAM', 6, 'p_AUX_PARAM', 'parser.py', 183), (
    'AUX_PARAM -> CHAR r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM'
    , 'AUX_PARAM', 6, 'p_AUX_PARAM', 'parser.py', 184), (
    'NEXT_PARAM -> COMMA AUX_PARAM', 'NEXT_PARAM', 2, 'p_NEXT_PARAM',
    'parser.py', 188), ('NEXT_PARAM -> EMPTY', 'NEXT_PARAM', 1,
    'p_NEXT_PARAM', 'parser.py', 189), (
    'RETURN_STM -> RETURN LPAREN EXPRESION RPAREN r_generate_return',
    'RETURN_STM', 5, 'p_RETURN_STM', 'parser.py', 192), (
    'DESDE_CICLO -> DESDE ID r_new_id_for EQ r_new_operator CTE_I r_new_c_int r_new_equal HASTA CTE_I r_new_c_int r_new_migajita r_compara_for HACER r_new_gotof BLOQUE r_update_for r_new_goto r_complete_gotof r_clear_for'
    , 'DESDE_CICLO', 20, 'p_DESDE_CICLO', 'parser.py', 197), (
    'MIENTRAS_CICLO -> MIENTRAS r_new_migajita LPAREN EXPRESION RPAREN r_new_gotof HAZ BLOQUE r_new_goto r_complete_gotof'
    , 'MIENTRAS_CICLO', 10, 'p_MIENTRAS_CICLO', 'parser.py', 202), (
    'LECTURA -> LEE LPAREN PARAMETRO_LECTURA RPAREN', 'LECTURA', 4,
    'p_LECTURA', 'parser.py', 207), (
    'PARAMETRO_LECTURA -> PARAMETRO_LECTURA_AUX', 'PARAMETRO_LECTURA', 1,
    'p_PARAMETRO_LECTURA', 'parser.py', 211), ('PARAMETRO_LECTURA -> EMPTY',
    'PARAMETRO_LECTURA', 1, 'p_PARAMETRO_LECTURA', 'parser.py', 212), (
    'PARAMETRO_LECTURA_AUX -> EXPRESION r_new_read',
    'PARAMETRO_LECTURA_AUX', 2, 'p_PARAMETRO_LECTURA_AUX', 'parser.py', 215
    ), (
    'PARAMETRO_LECTURA_AUX -> EXPRESION r_new_read COMMA PARAMETRO_LECTURA_AUX'
    , 'PARAMETRO_LECTURA_AUX', 4, 'p_PARAMETRO_LECTURA_AUX', 'parser.py', 
    216), ('ESCRITURA -> ESCRIBE LPAREN PARAMETRO_ESCRITURA RPAREN',
    'ESCRITURA', 4, 'p_ESCRITURA', 'parser.py', 220), (
    'PARAMETRO_ESCRITURA -> PARAMETRO_ESCRITURA_AUX', 'PARAMETRO_ESCRITURA',
    1, 'p_PARAMETRO_ESCRITURA', 'parser.py', 224), (
    'PARAMETRO_ESCRITURA -> EMPTY', 'PARAMETRO_ESCRITURA', 1,
    'p_PARAMETRO_ESCRITURA', 'parser.py', 225), (
    'PARAMETRO_ESCRITURA_AUX -> EXPRESION r_new_write',
    'PARAMETRO_ESCRITURA_AUX', 2, 'p_PARAMETRO_ESCRITURA_AUX', 'parser.py',
    229), (
    'PARAMETRO_ESCRITURA_AUX -> EXPRESION r_new_write COMMA PARAMETRO_ESCRITURA_AUX'
    , 'PARAMETRO_ESCRITURA_AUX', 4, 'p_PARAMETRO_ESCRITURA_AUX',
    'parser.py', 230), (
    'LLAMADA -> ID r_verify_function r_generate_era LPAREN r_new_lparen TIPO_PARAMETROS r_new_rparen RPAREN r_verify_last_parameter r_generate_gosub'
    , 'LLAMADA', 10, 'p_LLAMADA', 'parser.py', 234), (
    'TIPO_PARAMETROS -> TIPO_PARAMETROS_AUX', 'TIPO_PARAMETROS', 1,
    'p_TIPO_PARAMETROS', 'parser.py', 238), ('TIPO_PARAMETROS -> EMPTY',
    'TIPO_PARAMETROS', 1, 'p_TIPO_PARAMETROS', 'parser.py', 239), (
    'TIPO_PARAMETROS_AUX -> EXPRESION r_verify_parameter',
    'TIPO_PARAMETROS_AUX', 2, 'p_TIPO_PARAMETROS_AUX', 'parser.py', 243), (
    'TIPO_PARAMETROS_AUX -> EXPRESION r_verify_parameter COMMA TIPO_PARAMETROS_AUX'
    , 'TIPO_PARAMETROS_AUX', 4, 'p_TIPO_PARAMETROS_AUX', 'parser.py', 244),
    (
    'IF_STMT -> SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_complete_gotof'
    , 'IF_STMT', 8, 'p_IF_STMT', 'parser.py', 250), (
    'IF_ELSE_STMT -> SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_new_goto r_complete_gotof SINO BLOQUE r_complete_goto'
    , 'IF_ELSE_STMT', 12, 'p_IF_ELSE_STMT', 'parser.py', 255), (
    'ASIGNACION -> EXPRESION ASIGNACION_AUX r_new_equal', 'ASIGNACION', 3,
    'p_ASIGNACION', 'parser.py', 260), (
    'ASIGNACION_AUX -> EQ r_new_operator ASIGNACION', 'ASIGNACION_AUX', 3,
    'p_ASIGNACION_AUX', 'parser.py', 264), ('ASIGNACION_AUX -> EMPTY',
    'ASIGNACION_AUX', 1, 'p_ASIGNACION_AUX', 'parser.py', 265), (
    'r_new_det -> <empty>', 'r_new_det', 0, 'p_r_new_det', 'parser.py', 291
    ), ('r_new_tran -> <empty>', 'r_new_tran', 0, 'p_r_new_tran',
    'parser.py', 311), ('r_new_inv -> <empty>', 'r_new_inv', 0,
    'p_r_new_inv', 'parser.py', 331), ('r_new_id -> <empty>', 'r_new_id', 0,
    'p_r_new_id', 'parser.py', 351), ('r_new_c_int -> <empty>',
    'r_new_c_int', 0, 'p_r_new_c_int', 'parser.py', 374), (
    'r_new_c_char -> <empty>', 'r_new_c_char', 0, 'p_r_new_c_char',
    'parser.py', 380), ('r_new_c_float -> <empty>', 'r_new_c_float', 0,
    'p_r_new_c_float', 'parser.py', 386), ('r_new_c_string -> <empty>',
    'r_new_c_string', 0, 'p_r_new_c_string', 'parser.py', 392), (
    'r_new_lparen -> <empty>', 'r_new_lparen', 0, 'p_r_new_lparen',
    'parser.py', 398), ('r_new_rparen -> <empty>', 'r_new_rparen', 0,
    'p_r_new_rparen', 'parser.py', 402), ('r_new_operator -> <empty>',
    'r_new_operator', 0, 'p_r_new_operator', 'parser.py', 408), (
    'r_new_quadruple_flevel -> <empty>', 'r_new_quadruple_flevel', 0,
    'p_r_new_quadruple_flevel', 'parser.py', 412), (
    'r_new_quadruple_slevel -> <empty>', 'r_new_quadruple_slevel', 0,
    'p_r_new_quadruple_slevel', 'parser.py', 425), (
    'r_new_quadruple_tlevel -> <empty>', 'r_new_quadruple_tlevel', 0,
    'p_r_new_quadruple_tlevel', 'parser.py', 438), (
    'r_new_quadruple -> <empty>', 'r_new_quadruple', 0, 'p_r_new_quadruple',
    'parser.py', 445), ('r_new_equal -> <empty>', 'r_new_equal', 0,
    'p_r_new_equal', 'parser.py', 452), ('r_new_goto -> <empty>',
    'r_new_goto', 0, 'p_r_new_goto', 'parser.py', 469), (
    'r_complete_goto -> <empty>', 'r_complete_goto', 0, 'p_r_complete_goto',
    'parser.py', 473), ('r_new_gotof -> <empty>', 'r_new_gotof', 0,
    'p_r_new_gotof', 'parser.py', 477), ('r_complete_gotof -> <empty>',
    'r_complete_gotof', 0, 'p_r_complete_gotof', 'parser.py', 483), (
    'r_new_migajita -> <empty>', 'r_new_migajita', 0, 'p_r_new_migajita',
    'parser.py', 487), ('r_new_id_for -> <empty>', 'r_new_id_for', 0,
    'p_r_new_id_for', 'parser.py', 491), ('r_compara_for -> <empty>',
    'r_compara_for', 0, 'p_r_compara_for', 'parser.py', 509), (
    'r_update_for -> <empty>', 'r_update_for', 0, 'p_r_update_for',
    'parser.py', 519), ('r_clear_for -> <empty>', 'r_clear_for', 0,
    'p_r_clear_for', 'parser.py', 528), ('r_clear_mem -> <empty>',
    'r_clear_mem', 0, 'p_r_clear_mem', 'parser.py', 538), (
    'r_new_function -> <empty>', 'r_new_function', 0, 'p_r_new_function',
    'parser.py', 542), ('r_insert_type -> <empty>', 'r_insert_type', 0,
    'p_r_insert_type', 'parser.py', 552), ('r_set_fun_type -> <empty>',
    'r_set_fun_type', 0, 'p_r_set_fun_type', 'parser.py', 556), (
    'r_set_fun_name -> <empty>', 'r_set_fun_name', 0, 'p_r_set_fun_name',
    'parser.py', 560), ('r_new_vartable -> <empty>', 'r_new_vartable', 0,
    'p_r_new_vartable', 'parser.py', 564), (
    'r_insert_parameters -> <empty>', 'r_insert_parameters', 0,
    'p_r_insert_parameters', 'parser.py', 568), (
    'r_end_function -> <empty>', 'r_end_function', 0, 'p_r_end_function',
    'parser.py', 586), ('r_flush_mem -> <empty>', 'r_flush_mem', 0,
    'p_r_flush_mem', 'parser.py', 592), ('r_verify_function -> <empty>',
    'r_verify_function', 0, 'p_r_verify_function', 'parser.py', 599), (
    'r_generate_era -> <empty>', 'r_generate_era', 0, 'p_r_generate_era',
    'parser.py', 609), ('r_verify_parameter -> <empty>',
    'r_verify_parameter', 0, 'p_r_verify_parameter', 'parser.py', 613), (
    'r_verify_last_parameter -> <empty>', 'r_verify_last_parameter', 0,
    'p_r_verify_last_parameter', 'parser.py', 624), (
    'r_generate_gosub -> <empty>', 'r_generate_gosub', 0,
    'p_r_generate_gosub', 'parser.py', 631), (
    'r_generate_return -> <empty>', 'r_generate_return', 0,
    'p_r_generate_return', 'parser.py', 642), ('r_set_var_type -> <empty>',
    'r_set_var_type', 0, 'p_r_set_var_type', 'parser.py', 659), (
    'r_new_variable -> <empty>', 'r_new_variable', 0, 'p_r_new_variable',
    'parser.py', 663), ('r_change_local_context -> <empty>',
    'r_change_local_context', 0, 'p_r_change_local_context', 'parser.py', 
    669), ('r_change_global_context -> <empty>', 'r_change_global_context',
    0, 'p_r_change_global_context', 'parser.py', 673), (
    'r_display_var_table -> <empty>', 'r_display_var_table', 0,
    'p_r_display_var_table', 'parser.py', 677), (
    'r_display_const -> <empty>', 'r_display_const', 0, 'p_r_display_const',
    'parser.py', 681), ('r_new_arr -> <empty>', 'r_new_arr', 0,
    'p_r_new_arr', 'parser.py', 685), ('r_new_dim -> <empty>', 'r_new_dim',
    0, 'p_r_new_dim', 'parser.py', 690), ('r_generate_arr -> <empty>',
    'r_generate_arr', 0, 'p_r_generate_arr', 'parser.py', 700), (
    'r_clear_arr -> <empty>', 'r_clear_arr', 0, 'p_r_clear_arr',
    'parser.py', 708), ('r_new_read -> <empty>', 'r_new_read', 0,
    'p_r_new_read', 'parser.py', 717), ('r_new_write -> <empty>',
    'r_new_write', 0, 'p_r_new_write', 'parser.py', 721), (
    'r_register_arr -> <empty>', 'r_register_arr', 0, 'p_r_register_arr',
    'parser.py', 729), ('r_quad_arr -> <empty>', 'r_quad_arr', 0,
    'p_r_quad_arr', 'parser.py', 734)]


# parsetab.py
# This file is automatically generated. Do not edit.
# pylint: disable=W,C,R
_tabversion = '3.10'

_lr_method = 'LALR'

_lr_signature = 'PROGAND CHAR COLON COMMA COMMENT COMPAR CTE_C CTE_F CTE_I CTE_S DESDE DET DIV DOT ENTONCES EQ ESCRIBE FLOAT FUNCION GREATER GREATER_EQ HACER HASTA HAZ ID INT INV LBRACKET LEE LESS LESS_EQ LPAREN LSQ MIENTRAS MINUS MULT NOT_EQ NULL OR PLUS PRINCIPAL PROGRAMA RBRACKET RETURN RPAREN RSQ SEMI_COLON SI SINO TRAN VAR VOIDEMPTY :MAIN : PRINCIPAL r_flush_mem LPAREN RPAREN BLOQUEPROG : r_new_goto PROGRAMA ID SEMI_COLON VARS r_change_local_context FUNCTION r_complete_goto r_change_global_context r_display_var_table MAIN r_display_constVARS : VAR TIPO\n            | EMPTYTIPO : INT r_set_var_type VAR_INT SEMI_COLON TIPO\n            | FLOAT r_set_var_type VAR_TIPO SEMI_COLON TIPO\n            | CHAR r_set_var_type VAR_TIPO SEMI_COLON TIPO\n            | EMPTYVAR_INT : LIST_ID COMMA VAR_INT\n                | ID r_new_variable COMMA VAR_INT\n                | LIST_ID\n                | ID r_new_variableVAR_TIPO : ID r_new_variable COMMA\n                | ID r_new_variableLIST_ID : ID r_new_arr LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr\n                | ID r_new_arr LSQ CTE_I r_new_dim RSQ LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr\n    EXPRESION : TLEVEL_EXPRESION r_new_quadruple EXPRESION_AUXEXPRESION_AUX : COMPAR r_new_operator EXPRESION\n                    | AND r_new_operator EXPRESION\n                    | OR r_new_operator EXPRESION\n                    | EMPTYTLEVEL_EXPRESION : SLEVEL_EXPRESION r_new_quadruple_tlevel TLEVEL_EXPRESION_AUXTLEVEL_EXPRESION_AUX : NOT_EQ r_new_operator TLEVEL_EXPRESION\n                            | GREATER_EQ r_new_operator TLEVEL_EXPRESION\n                            | LESS_EQ r_new_operator TLEVEL_EXPRESION\n                            | GREATER r_new_operator TLEVEL_EXPRESION\n                            | LESS r_new_operator TLEVEL_EXPRESION\n                            | EMPTYSLEVEL_EXPRESION : FLEVEL_EXPRESION r_new_quadruple_slevel SLEVEL_EXPRESION_AUXSLEVEL_EXPRESION_AUX : PLUS r_new_operator SLEVEL_EXPRESION\n                            | MINUS r_new_operator SLEVEL_EXPRESION\n                            | EMPTYFLEVEL_EXPRESION : VALUE_EXPRESION r_new_quadruple_flevel FLEVEL_EXPRESION_AUXFLEVEL_EXPRESION_AUX : MULT r_new_operator FLEVEL_EXPRESION\n                            | DIV r_new_operator FLEVEL_EXPRESION\n                            | EMPTYVALUE_EXPRESION : ID r_new_id\n                    | ID r_new_det DET\n                    | ID r_new_tran TRAN\n                    | ID r_new_inv INV\n                    | ARR\n                    | CONSTANTE \n                    | LLAMADA\n                    | r_new_lparen LPAREN EXPRESION RPAREN r_new_rparen\n    CONSTANTE : CTE_I r_new_c_int\n                | CTE_F r_new_c_float\n                | CTE_C r_new_c_char\n                | CTE_S r_new_c_string\n    BLOQUE : LBRACKET OPCION_BLOQUE RBRACKETOPCION_BLOQUE : LECTURA SEMI_COLON OPCION_BLOQUE\n                    | ESCRITURA SEMI_COLON OPCION_BLOQUE\n                    | LLAMADA SEMI_COLON OPCION_BLOQUE\n                    | IF_STMT OPCION_BLOQUE\n                    | IF_ELSE_STMT OPCION_BLOQUE\n                    | MIENTRAS_CICLO OPCION_BLOQUE\n                    | DESDE_CICLO OPCION_BLOQUE\n                    | ASIGNACION SEMI_COLON OPCION_BLOQUE\n                    | RETURN_STM SEMI_COLON OPCION_BLOQUE\n                    | EMPTY\n    FUNCTION : r_new_function FUNCION TIPO_FUNC r_clear_mem ID r_set_fun_name r_new_vartable LPAREN PARAMETROS RPAREN VARS r_insert_parameters BLOQUE r_end_function FUNCTION \n                | EMPTYTIPO_FUNC : INT r_set_fun_type\n                | FLOAT r_set_fun_type\n                | CHAR r_set_fun_type\n                | VOID r_set_fun_typePARAMETROS : AUX_PARAM\n                | EMPTYARR : ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr\n                | ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr\n    AUX_PARAM : INT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM\n                | FLOAT r_set_var_type  r_insert_type ID r_new_variable NEXT_PARAM\n                | CHAR r_set_var_type r_insert_type ID r_new_variable NEXT_PARAMNEXT_PARAM : COMMA AUX_PARAM\n                    | EMPTY RETURN_STM : RETURN LPAREN EXPRESION RPAREN r_generate_returnDESDE_CICLO : DESDE ID r_new_id_for EQ r_new_operator CTE_I r_new_c_int r_new_equal HASTA CTE_I r_new_c_int r_new_migajita r_compara_for HACER r_new_gotof BLOQUE r_update_for r_new_goto r_complete_gotof r_clear_forMIENTRAS_CICLO : MIENTRAS r_new_migajita LPAREN EXPRESION RPAREN r_new_gotof HAZ BLOQUE r_new_goto r_complete_gotofLECTURA : LEE LPAREN PARAMETRO_LECTURA RPARENPARAMETRO_LECTURA : PARAMETRO_LECTURA_AUX\n                        | EMPTYPARAMETRO_LECTURA_AUX : EXPRESION r_new_read\n                            | EXPRESION r_new_read COMMA PARAMETRO_LECTURA_AUXESCRITURA : ESCRIBE LPAREN PARAMETRO_ESCRITURA RPARENPARAMETRO_ESCRITURA : PARAMETRO_ESCRITURA_AUX\n                            | EMPTYPARAMETRO_ESCRITURA_AUX : EXPRESION r_new_write\n                                | EXPRESION r_new_write COMMA PARAMETRO_ESCRITURA_AUXLLAMADA : ID r_verify_function r_generate_era LPAREN r_new_lparen TIPO_PARAMETROS r_new_rparen RPAREN r_verify_last_parameter r_generate_gosubTIPO_PARAMETROS : TIPO_PARAMETROS_AUX\n                        | EMPTYTIPO_PARAMETROS_AUX : EXPRESION r_verify_parameter\n                            | EXPRESION r_verify_parameter COMMA TIPO_PARAMETROS_AUX\n    IF_STMT : SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_complete_gotofIF_ELSE_STMT : SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_new_goto r_complete_gotof SINO BLOQUE r_complete_gotoASIGNACION : EXPRESION ASIGNACION_AUX r_new_equalASIGNACION_AUX : EQ r_new_operator ASIGNACION\n                    | EMPTY\n    r_new_det :r_new_tran : r_new_inv : r_new_id : r_new_c_int : r_new_c_char : r_new_c_float : r_new_c_string : r_new_lparen : r_new_rparen : r_new_operator : r_new_quadruple_flevel : r_new_quadruple_slevel : r_new_quadruple_tlevel : r_new_quadruple : r_new_equal : r_new_goto : r_complete_goto : r_new_gotof : r_complete_gotof : r_new_migajita : r_new_id_for : r_compara_for : r_update_for : r_clear_for : r_clear_mem : r_new_function : r_insert_type : r_set_fun_type : r_set_fun_name : r_new_vartable : r_insert_parameters : r_end_function : r_flush_mem : r_verify_function : r_generate_era : r_verify_parameter : r_verify_last_parameter : r_generate_gosub : r_generate_return : r_set_var_type : r_new_variable : r_change_local_context : r_change_global_context : r_display_var_table : r_display_const : r_new_arr : r_new_dim : r_generate_arr : r_clear_arr : r_new_read : r_new_write : r_register_arr : r_quad_arr : '
    
_lr_action_items = {'PROGRAMA':([0,2,],[-115,3,]),'$end':([1,55,60,71,116,],[0,-144,-3,-2,-50,]),'ID':([3,11,12,13,18,19,20,30,31,32,33,34,36,43,44,45,46,47,50,72,76,77,78,85,86,87,88,99,112,113,114,116,117,118,119,124,125,126,127,134,135,137,142,151,152,153,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[4,-139,-139,-139,25,27,27,-124,-127,-127,-127,-127,25,57,-63,-64,-65,-66,25,94,-139,-139,-139,94,94,94,94,140,-126,-126,-126,-50,94,94,94,94,94,164,164,164,164,-109,164,203,204,205,-107,164,164,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,-118,164,-107,-94,-115,164,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'SEMI_COLON':([4,23,24,25,26,27,28,37,40,49,53,58,66,70,80,82,83,84,89,90,94,97,100,102,103,104,105,106,107,108,109,110,129,136,138,141,143,144,145,146,147,148,149,154,164,165,171,172,173,177,182,186,187,193,194,197,198,201,206,207,209,213,215,218,235,240,244,245,246,247,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[5,35,-12,-140,39,-140,41,-13,-15,-10,-14,-11,-147,-148,-16,117,118,119,124,125,-102,-1,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-114,-98,-46,-1,-1,-1,-1,-47,-48,-49,-147,-102,-44,-39,-40,-41,-96,-18,-22,-23,-29,-30,-33,-34,-37,-148,-79,-84,-108,-97,-138,-17,-45,-76,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'VAR':([5,111,],[7,7,]),'PRINCIPAL':([5,6,7,8,9,10,14,15,17,21,29,35,39,41,42,48,52,54,116,231,257,273,],[-1,-141,-1,-5,-1,-4,-9,-116,-62,-142,-143,-1,-1,-1,56,-6,-7,-8,-50,-131,-1,-61,]),'FUNCION':([5,6,7,8,9,10,14,16,35,39,41,48,52,54,116,231,257,],[-1,-141,-1,-5,-125,-4,-9,22,-1,-1,-1,-6,-7,-8,-50,-131,-125,]),'INT':([7,22,35,39,41,68,259,],[11,31,11,11,11,76,76,]),'FLOAT':([7,22,35,39,41,68,259,],[12,32,12,12,12,77,77,]),'CHAR':([7,22,35,39,41,68,259,],[13,33,13,13,13,78,78,]),'LBRACKET':([7,8,10,14,35,39,41,48,52,54,67,111,150,202,270,279,297,308,309,],[-1,-5,-4,-9,-1,-1,-1,-6,-7,-8,72,-1,-130,72,72,72,72,-117,72,]),'VOID':([22,],[34,]),'COMMA':([24,25,27,37,40,66,70,80,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,154,163,164,165,169,171,172,173,182,186,187,193,194,197,198,201,203,204,205,206,208,210,213,232,233,234,235,240,245,246,247,248,249,250,251,252,253,254,255,256,268,276,277,281,284,289,295,303,306,],[36,-140,-140,50,53,-147,-148,-16,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,-1,-1,-1,-1,-47,-48,-49,-147,-149,-102,-44,-150,-39,-40,-41,-18,-22,-23,-29,-30,-33,-34,-37,-140,-140,-140,-148,236,237,-108,259,259,259,-17,-45,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-135,282,-152,-136,-69,-137,-89,-152,-70,]),'LSQ':([25,38,66,94,133,164,277,],[-145,51,69,-151,174,-151,283,]),'CTE_I':([51,69,72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,217,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,243,278,282,283,285,287,291,293,294,298,301,304,310,311,312,313,314,],[59,79,100,100,100,100,100,-50,100,100,100,100,100,100,100,100,100,-109,100,-107,100,100,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,100,-109,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,272,-118,100,-107,-94,-115,100,-118,299,-78,-116,-95,-122,-115,-118,-123,-77,]),'LPAREN':([56,57,61,62,65,72,85,86,87,88,92,93,94,95,96,98,101,116,117,118,119,124,125,126,127,128,134,135,137,139,142,164,170,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[-132,-128,64,-129,68,-107,-107,-107,-107,-107,126,127,-133,134,135,-119,142,-50,-107,-107,-107,-107,-107,-107,-107,-134,-107,-107,-109,179,-107,-133,211,-107,-107,-107,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-118,-107,-107,-94,-115,-107,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'RSQ':([59,63,79,100,104,105,106,107,108,109,110,115,129,141,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,239,240,253,254,255,256,269,277,281,284,289,295,296,300,303,306,],[-146,66,-146,-103,-111,-110,-42,-43,-105,-104,-106,154,-38,-46,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-108,-45,-31,-32,-35,-36,277,-152,-136,-69,-137,-89,-108,303,-152,-70,]),'RPAREN':([64,68,73,74,75,100,102,103,104,105,106,107,108,109,110,126,127,129,141,143,144,145,146,147,148,149,160,161,162,163,164,165,166,167,168,169,171,172,173,175,176,181,182,186,187,193,194,197,198,201,203,204,205,208,210,211,213,216,232,233,234,238,240,245,246,247,248,249,250,251,252,253,254,255,256,258,260,261,262,263,264,265,266,267,268,274,275,276,277,281,284,289,290,295,303,306,],[67,-1,111,-67,-68,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-1,-1,-38,-46,-1,-1,-1,-1,-47,-48,-49,207,-80,-81,-149,-102,-44,209,-85,-86,-150,-39,-40,-41,213,214,218,-18,-22,-23,-29,-30,-33,-34,-37,-140,-140,-140,-82,-87,-107,-108,242,-1,-1,-1,-1,-45,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-71,-75,-72,-73,-83,-88,-108,-90,-91,-135,-74,281,-92,-152,-136,-69,-137,-93,-89,-152,-70,]),'LEE':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[92,92,92,92,92,-50,92,92,92,92,92,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'ESCRIBE':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[93,93,93,93,93,-50,93,93,93,93,93,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'SI':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[96,96,96,96,96,-50,96,96,96,96,96,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'MIENTRAS':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[98,98,98,98,98,-50,98,98,98,98,98,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'DESDE':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[99,99,99,99,99,-50,99,99,99,99,99,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'RETURN':([72,85,86,87,88,116,117,118,119,124,125,278,285,287,293,298,301,304,310,311,312,313,314,],[101,101,101,101,101,-50,101,101,101,101,101,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'RBRACKET':([72,81,85,86,87,88,91,116,117,118,119,120,121,122,123,124,125,155,156,157,158,159,278,285,287,293,298,301,304,310,311,312,313,314,],[-1,116,-1,-1,-1,-1,-60,-50,-1,-1,-1,-54,-55,-56,-57,-1,-1,-51,-52,-53,-58,-59,-118,-94,-115,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'CTE_F':([72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[108,108,108,108,108,-50,108,108,108,108,108,108,108,108,108,-109,108,-107,108,108,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,-118,108,-107,-94,-115,108,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'CTE_C':([72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[109,109,109,109,109,-50,109,109,109,109,109,109,109,109,109,-109,109,-107,109,109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,-118,109,-107,-94,-115,109,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'CTE_S':([72,85,86,87,88,116,117,118,119,124,125,126,127,134,135,137,142,174,178,179,183,184,185,188,189,190,191,192,195,196,199,200,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,278,282,283,285,287,291,293,298,301,304,310,311,312,313,314,],[110,110,110,110,110,-50,110,110,110,110,110,110,110,110,110,-109,110,-107,110,110,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-107,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,-118,110,-107,-94,-115,110,-118,-78,-116,-95,-122,-115,-118,-123,-77,]),'MULT':([84,94,100,105,106,107,108,109,110,129,141,146,147,148,149,164,165,171,172,173,213,240,277,281,284,289,295,303,306,],[-44,-102,-103,-110,-42,-43,-105,-104,-106,-38,-46,199,-47,-48,-49,-102,-44,-39,-40,-41,-108,-45,-152,-136,-69,-137,-89,-152,-70,]),'DIV':([84,94,100,105,106,107,108,109,110,129,141,146,147,148,149,164,165,171,172,173,213,240,277,281,284,289,295,303,306,],[-44,-102,-103,-110,-42,-43,-105,-104,-106,-38,-46,200,-47,-48,-49,-102,-44,-39,-40,-41,-108,-45,-152,-136,-69,-137,-89,-152,-70,]),'PLUS':([84,94,100,104,105,106,107,108,109,110,129,141,145,146,147,148,149,164,165,171,172,173,198,201,213,240,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-111,-110,-42,-43,-105,-104,-106,-38,-46,195,-1,-47,-48,-49,-102,-44,-39,-40,-41,-34,-37,-108,-45,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'MINUS':([84,94,100,104,105,106,107,108,109,110,129,141,145,146,147,148,149,164,165,171,172,173,198,201,213,240,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-111,-110,-42,-43,-105,-104,-106,-38,-46,196,-1,-47,-48,-49,-102,-44,-39,-40,-41,-34,-37,-108,-45,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'NOT_EQ':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,188,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'GREATER_EQ':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,189,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'LESS_EQ':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,190,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'GREATER':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,191,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'LESS':([84,94,100,103,104,105,106,107,108,109,110,129,141,144,145,146,147,148,149,164,165,171,172,173,194,197,198,201,213,240,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,192,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-30,-33,-34,-37,-108,-45,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'COMPAR':([84,94,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,164,165,171,172,173,187,193,194,197,198,201,213,240,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,183,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-23,-29,-30,-33,-34,-37,-108,-45,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'AND':([84,94,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,164,165,171,172,173,187,193,194,197,198,201,213,240,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,184,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-23,-29,-30,-33,-34,-37,-108,-45,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'OR':([84,94,100,102,103,104,105,106,107,108,109,110,129,141,143,144,145,146,147,148,149,164,165,171,172,173,187,193,194,197,198,201,213,240,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-46,185,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,-23,-29,-30,-33,-34,-37,-108,-45,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'EQ':([84,94,97,100,102,103,104,105,106,107,108,109,110,129,140,141,143,144,145,146,147,148,149,164,165,171,172,173,180,182,186,187,193,194,197,198,201,213,240,245,246,247,248,249,250,251,252,253,254,255,256,277,281,284,289,295,303,306,],[-44,-102,137,-103,-113,-112,-111,-110,-42,-43,-105,-104,-106,-38,-120,-46,-1,-1,-1,-1,-47,-48,-49,-102,-44,-39,-40,-41,217,-18,-22,-23,-29,-30,-33,-34,-37,-108,-45,-19,-20,-21,-24,-25,-26,-27,-28,-31,-32,-35,-36,-152,-136,-69,-137,-89,-152,-70,]),'DET':([94,130,164,],[-99,171,-99,]),'TRAN':([94,131,164,],[-100,172,-100,]),'INV':([94,132,164,],[-101,173,-101,]),'SINO':([116,278,286,292,],[-50,-115,-118,297,]),'ENTONCES':([214,241,],[-117,270,]),'HAZ':([242,271,],[-117,279,]),'HASTA':([272,280,288,],[-103,-114,294,]),'HACER':([299,302,305,307,],[-103,-119,-121,308,]),}

_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 = {'PROG':([0,],[1,]),'r_new_goto':([0,278,287,311,],[2,286,293,312,]),'VARS':([5,111,],[6,150,]),'EMPTY':([5,7,9,35,39,41,68,72,85,86,87,88,97,111,117,118,119,124,125,126,127,143,144,145,146,232,233,234,238,257,],[8,14,17,14,14,14,75,91,91,91,91,91,138,8,91,91,91,91,91,162,168,186,193,197,201,260,260,260,267,17,]),'r_change_local_context':([6,],[9,]),'TIPO':([7,35,39,41,],[10,48,52,54,]),'FUNCTION':([9,257,],[15,273,]),'r_new_function':([9,257,],[16,16,]),'r_set_var_type':([11,12,13,76,77,78,],[18,19,20,112,113,114,]),'r_complete_goto':([15,301,],[21,304,]),'VAR_INT':([18,36,50,],[23,49,58,]),'LIST_ID':([18,36,50,],[24,24,24,]),'VAR_TIPO':([19,20,],[26,28,]),'r_change_global_context':([21,],[29,]),'TIPO_FUNC':([22,],[30,]),'r_new_variable':([25,27,203,204,205,],[37,40,232,233,234,]),'r_new_arr':([25,],[38,]),'r_display_var_table':([29,],[42,]),'r_clear_mem':([30,],[43,]),'r_set_fun_type':([31,32,33,34,],[44,45,46,47,]),'MAIN':([42,],[55,]),'r_display_const':([55,],[60,]),'r_flush_mem':([56,],[61,]),'r_set_fun_name':([57,],[62,]),'r_new_dim':([59,79,],[63,115,]),'r_new_vartable':([62,],[65,]),'r_generate_arr':([66,154,],[70,206,]),'BLOQUE':([67,202,270,279,297,309,],[71,231,278,287,301,310,]),'PARAMETROS':([68,],[73,]),'AUX_PARAM':([68,259,],[74,274,]),'r_clear_arr':([70,206,],[80,235,]),'OPCION_BLOQUE':([72,85,86,87,88,117,118,119,124,125,],[81,120,121,122,123,155,156,157,158,159,]),'LECTURA':([72,85,86,87,88,117,118,119,124,125,],[82,82,82,82,82,82,82,82,82,82,]),'ESCRITURA':([72,85,86,87,88,117,118,119,124,125,],[83,83,83,83,83,83,83,83,83,83,]),'LLAMADA':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[84,84,84,84,84,84,84,84,84,84,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,]),'IF_STMT':([72,85,86,87,88,117,118,119,124,125,],[85,85,85,85,85,85,85,85,85,85,]),'IF_ELSE_STMT':([72,85,86,87,88,117,118,119,124,125,],[86,86,86,86,86,86,86,86,86,86,]),'MIENTRAS_CICLO':([72,85,86,87,88,117,118,119,124,125,],[87,87,87,87,87,87,87,87,87,87,]),'DESDE_CICLO':([72,85,86,87,88,117,118,119,124,125,],[88,88,88,88,88,88,88,88,88,88,]),'ASIGNACION':([72,85,86,87,88,117,118,119,124,125,178,],[89,89,89,89,89,89,89,89,89,89,215,]),'RETURN_STM':([72,85,86,87,88,117,118,119,124,125,],[90,90,90,90,90,90,90,90,90,90,]),'r_new_lparen':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,174,178,179,211,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,283,291,],[95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,212,95,95,238,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,291,95,]),'EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,219,220,221,236,237,238,282,],[97,97,97,97,97,97,97,97,97,97,163,169,175,176,181,97,216,245,246,247,163,169,268,268,]),'TLEVEL_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,219,220,221,222,223,224,225,226,236,237,238,282,],[102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,248,249,250,251,252,102,102,102,102,]),'SLEVEL_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,236,237,238,282,291,],[103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,239,103,103,103,103,103,103,103,103,253,254,103,103,103,103,296,]),'FLEVEL_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,255,256,104,104,104,104,104,]),'VALUE_EXPRESION':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,]),'ARR':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,]),'CONSTANTE':([72,85,86,87,88,117,118,119,124,125,126,127,134,135,142,178,179,212,219,220,221,222,223,224,225,226,227,228,229,230,236,237,238,282,291,],[107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,]),'r_verify_function':([94,164,],[128,128,]),'r_new_id':([94,164,],[129,129,]),'r_new_det':([94,164,],[130,130,]),'r_new_tran':([94,164,],[131,131,]),'r_new_inv':([94,164,],[132,132,]),'r_register_arr':([94,164,],[133,133,]),'ASIGNACION_AUX':([97,],[136,]),'r_new_migajita':([98,302,],[139,305,]),'r_new_c_int':([100,272,299,],[141,280,302,]),'r_new_quadruple':([102,],[143,]),'r_new_quadruple_tlevel':([103,],[144,]),'r_new_quadruple_slevel':([104,],[145,]),'r_new_quadruple_flevel':([105,],[146,]),'r_new_c_float':([108,],[147,]),'r_new_c_char':([109,],[148,]),'r_new_c_string':([110,],[149,]),'r_insert_type':([112,113,114,],[151,152,153,]),'PARAMETRO_LECTURA':([126,],[160,]),'PARAMETRO_LECTURA_AUX':([126,236,],[161,263,]),'PARAMETRO_ESCRITURA':([127,],[166,]),'PARAMETRO_ESCRITURA_AUX':([127,237,],[167,264,]),'r_generate_era':([128,],[170,]),'r_new_equal':([136,280,],[177,288,]),'r_new_operator':([137,183,184,185,188,189,190,191,192,195,196,199,200,217,],[178,219,220,221,222,223,224,225,226,227,228,229,230,243,]),'r_new_id_for':([140,],[180,]),'EXPRESION_AUX':([143,],[182,]),'TLEVEL_EXPRESION_AUX':([144,],[187,]),'SLEVEL_EXPRESION_AUX':([145,],[194,]),'FLEVEL_EXPRESION_AUX':([146,],[198,]),'r_insert_parameters':([150,],[202,]),'r_new_read':([163,],[208,]),'r_new_write':([169,],[210,]),'r_new_rparen':([213,239,265,296,],[240,269,275,300,]),'r_new_gotof':([214,242,308,],[241,271,309,]),'r_generate_return':([218,],[244,]),'r_end_function':([231,],[257,]),'NEXT_PARAM':([232,233,234,],[258,261,262,]),'TIPO_PARAMETROS':([238,],[265,]),'TIPO_PARAMETROS_AUX':([238,282,],[266,290,]),'r_verify_parameter':([268,],[276,]),'r_quad_arr':([277,303,],[284,306,]),'r_complete_gotof':([278,286,293,312,],[285,292,298,313,]),'r_verify_last_parameter':([281,],[289,]),'r_generate_gosub':([289,],[295,]),'r_compara_for':([305,],[307,]),'r_update_for':([310,],[311,]),'r_clear_for':([313,],[314,]),}

_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' -> PROG","S'",1,None,None,None),
  ('EMPTY -> <empty>','EMPTY',0,'p_EMPTY','parser.py',25),
  ('MAIN -> PRINCIPAL r_flush_mem LPAREN RPAREN BLOQUE','MAIN',5,'p_MAIN','parser.py',29),
  ('PROG -> r_new_goto PROGRAMA ID SEMI_COLON VARS r_change_local_context FUNCTION r_complete_goto r_change_global_context r_display_var_table MAIN r_display_const','PROG',12,'p_PROG','parser.py',33),
  ('VARS -> VAR TIPO','VARS',2,'p_VARS','parser.py',37),
  ('VARS -> EMPTY','VARS',1,'p_VARS','parser.py',38),
  ('TIPO -> INT r_set_var_type VAR_INT SEMI_COLON TIPO','TIPO',5,'p_TIPO','parser.py',42),
  ('TIPO -> FLOAT r_set_var_type VAR_TIPO SEMI_COLON TIPO','TIPO',5,'p_TIPO','parser.py',43),
  ('TIPO -> CHAR r_set_var_type VAR_TIPO SEMI_COLON TIPO','TIPO',5,'p_TIPO','parser.py',44),
  ('TIPO -> EMPTY','TIPO',1,'p_TIPO','parser.py',45),
  ('VAR_INT -> LIST_ID COMMA VAR_INT','VAR_INT',3,'p_VAR_INT','parser.py',49),
  ('VAR_INT -> ID r_new_variable COMMA VAR_INT','VAR_INT',4,'p_VAR_INT','parser.py',50),
  ('VAR_INT -> LIST_ID','VAR_INT',1,'p_VAR_INT','parser.py',51),
  ('VAR_INT -> ID r_new_variable','VAR_INT',2,'p_VAR_INT','parser.py',52),
  ('VAR_TIPO -> ID r_new_variable COMMA','VAR_TIPO',3,'p_VAR_TIPO','parser.py',56),
  ('VAR_TIPO -> ID r_new_variable','VAR_TIPO',2,'p_VAR_TIPO','parser.py',57),
  ('LIST_ID -> ID r_new_arr LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr','LIST_ID',8,'p_LIST_ID','parser.py',61),
  ('LIST_ID -> ID r_new_arr LSQ CTE_I r_new_dim RSQ LSQ CTE_I r_new_dim RSQ r_generate_arr r_clear_arr','LIST_ID',12,'p_LIST_ID','parser.py',62),
  ('EXPRESION -> TLEVEL_EXPRESION r_new_quadruple EXPRESION_AUX','EXPRESION',3,'p_EXPRESION','parser.py',70),
  ('EXPRESION_AUX -> COMPAR r_new_operator EXPRESION','EXPRESION_AUX',3,'p_EXPRESION_AUX','parser.py',74),
  ('EXPRESION_AUX -> AND r_new_operator EXPRESION','EXPRESION_AUX',3,'p_EXPRESION_AUX','parser.py',75),
  ('EXPRESION_AUX -> OR r_new_operator EXPRESION','EXPRESION_AUX',3,'p_EXPRESION_AUX','parser.py',76),
  ('EXPRESION_AUX -> EMPTY','EXPRESION_AUX',1,'p_EXPRESION_AUX','parser.py',77),
  ('TLEVEL_EXPRESION -> SLEVEL_EXPRESION r_new_quadruple_tlevel TLEVEL_EXPRESION_AUX','TLEVEL_EXPRESION',3,'p_TLEVEL_EXPRESION','parser.py',81),
  ('TLEVEL_EXPRESION_AUX -> NOT_EQ r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',85),
  ('TLEVEL_EXPRESION_AUX -> GREATER_EQ r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',86),
  ('TLEVEL_EXPRESION_AUX -> LESS_EQ r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',87),
  ('TLEVEL_EXPRESION_AUX -> GREATER r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',88),
  ('TLEVEL_EXPRESION_AUX -> LESS r_new_operator TLEVEL_EXPRESION','TLEVEL_EXPRESION_AUX',3,'p_TLEVEL_EXPRESION_AUX','parser.py',89),
  ('TLEVEL_EXPRESION_AUX -> EMPTY','TLEVEL_EXPRESION_AUX',1,'p_TLEVEL_EXPRESION_AUX','parser.py',90),
  ('SLEVEL_EXPRESION -> FLEVEL_EXPRESION r_new_quadruple_slevel SLEVEL_EXPRESION_AUX','SLEVEL_EXPRESION',3,'p_SLEVEL_EXPRESION','parser.py',94),
  ('SLEVEL_EXPRESION_AUX -> PLUS r_new_operator SLEVEL_EXPRESION','SLEVEL_EXPRESION_AUX',3,'p_SLEVEL_EXPRESION_AUX','parser.py',98),
  ('SLEVEL_EXPRESION_AUX -> MINUS r_new_operator SLEVEL_EXPRESION','SLEVEL_EXPRESION_AUX',3,'p_SLEVEL_EXPRESION_AUX','parser.py',99),
  ('SLEVEL_EXPRESION_AUX -> EMPTY','SLEVEL_EXPRESION_AUX',1,'p_SLEVEL_EXPRESION_AUX','parser.py',100),
  ('FLEVEL_EXPRESION -> VALUE_EXPRESION r_new_quadruple_flevel FLEVEL_EXPRESION_AUX','FLEVEL_EXPRESION',3,'p_FLEVEL_EXPRESION','parser.py',104),
  ('FLEVEL_EXPRESION_AUX -> MULT r_new_operator FLEVEL_EXPRESION','FLEVEL_EXPRESION_AUX',3,'p_FLEVEL_EXPRESION_AUX','parser.py',108),
  ('FLEVEL_EXPRESION_AUX -> DIV r_new_operator FLEVEL_EXPRESION','FLEVEL_EXPRESION_AUX',3,'p_FLEVEL_EXPRESION_AUX','parser.py',109),
  ('FLEVEL_EXPRESION_AUX -> EMPTY','FLEVEL_EXPRESION_AUX',1,'p_FLEVEL_EXPRESION_AUX','parser.py',110),
  ('VALUE_EXPRESION -> ID r_new_id','VALUE_EXPRESION',2,'p_VALUE_EXPRESION','parser.py',114),
  ('VALUE_EXPRESION -> ID r_new_det DET','VALUE_EXPRESION',3,'p_VALUE_EXPRESION','parser.py',115),
  ('VALUE_EXPRESION -> ID r_new_tran TRAN','VALUE_EXPRESION',3,'p_VALUE_EXPRESION','parser.py',116),
  ('VALUE_EXPRESION -> ID r_new_inv INV','VALUE_EXPRESION',3,'p_VALUE_EXPRESION','parser.py',117),
  ('VALUE_EXPRESION -> ARR','VALUE_EXPRESION',1,'p_VALUE_EXPRESION','parser.py',118),
  ('VALUE_EXPRESION -> CONSTANTE','VALUE_EXPRESION',1,'p_VALUE_EXPRESION','parser.py',119),
  ('VALUE_EXPRESION -> LLAMADA','VALUE_EXPRESION',1,'p_VALUE_EXPRESION','parser.py',120),
  ('VALUE_EXPRESION -> r_new_lparen LPAREN EXPRESION RPAREN r_new_rparen','VALUE_EXPRESION',5,'p_VALUE_EXPRESION','parser.py',121),
  ('CONSTANTE -> CTE_I r_new_c_int','CONSTANTE',2,'p_CONSTANTE','parser.py',125),
  ('CONSTANTE -> CTE_F r_new_c_float','CONSTANTE',2,'p_CONSTANTE','parser.py',126),
  ('CONSTANTE -> CTE_C r_new_c_char','CONSTANTE',2,'p_CONSTANTE','parser.py',127),
  ('CONSTANTE -> CTE_S r_new_c_string','CONSTANTE',2,'p_CONSTANTE','parser.py',128),
  ('BLOQUE -> LBRACKET OPCION_BLOQUE RBRACKET','BLOQUE',3,'p_BLOQUE','parser.py',136),
  ('OPCION_BLOQUE -> LECTURA SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',140),
  ('OPCION_BLOQUE -> ESCRITURA SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',141),
  ('OPCION_BLOQUE -> LLAMADA SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',142),
  ('OPCION_BLOQUE -> IF_STMT OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',143),
  ('OPCION_BLOQUE -> IF_ELSE_STMT OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',144),
  ('OPCION_BLOQUE -> MIENTRAS_CICLO OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',145),
  ('OPCION_BLOQUE -> DESDE_CICLO OPCION_BLOQUE','OPCION_BLOQUE',2,'p_OPCION_BLOQUE','parser.py',146),
  ('OPCION_BLOQUE -> ASIGNACION SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',147),
  ('OPCION_BLOQUE -> RETURN_STM SEMI_COLON OPCION_BLOQUE','OPCION_BLOQUE',3,'p_OPCION_BLOQUE','parser.py',148),
  ('OPCION_BLOQUE -> EMPTY','OPCION_BLOQUE',1,'p_OPCION_BLOQUE','parser.py',149),
  ('FUNCTION -> r_new_function FUNCION TIPO_FUNC r_clear_mem ID r_set_fun_name r_new_vartable LPAREN PARAMETROS RPAREN VARS r_insert_parameters BLOQUE r_end_function FUNCTION','FUNCTION',15,'p_FUNCTION','parser.py',159),
  ('FUNCTION -> EMPTY','FUNCTION',1,'p_FUNCTION','parser.py',160),
  ('TIPO_FUNC -> INT r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',164),
  ('TIPO_FUNC -> FLOAT r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',165),
  ('TIPO_FUNC -> CHAR r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',166),
  ('TIPO_FUNC -> VOID r_set_fun_type','TIPO_FUNC',2,'p_TIPO_FUNC','parser.py',167),
  ('PARAMETROS -> AUX_PARAM','PARAMETROS',1,'p_PARAMETROS','parser.py',171),
  ('PARAMETROS -> EMPTY','PARAMETROS',1,'p_PARAMETROS','parser.py',172),
  ('ARR -> ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr','ARR',8,'p_ARR','parser.py',176),
  ('ARR -> ID r_register_arr LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ LSQ r_new_lparen SLEVEL_EXPRESION r_new_rparen RSQ r_quad_arr','ARR',13,'p_ARR','parser.py',177),
  ('AUX_PARAM -> INT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM','AUX_PARAM',6,'p_AUX_PARAM','parser.py',182),
  ('AUX_PARAM -> FLOAT r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM','AUX_PARAM',6,'p_AUX_PARAM','parser.py',183),
  ('AUX_PARAM -> CHAR r_set_var_type r_insert_type ID r_new_variable NEXT_PARAM','AUX_PARAM',6,'p_AUX_PARAM','parser.py',184),
  ('NEXT_PARAM -> COMMA AUX_PARAM','NEXT_PARAM',2,'p_NEXT_PARAM','parser.py',188),
  ('NEXT_PARAM -> EMPTY','NEXT_PARAM',1,'p_NEXT_PARAM','parser.py',189),
  ('RETURN_STM -> RETURN LPAREN EXPRESION RPAREN r_generate_return','RETURN_STM',5,'p_RETURN_STM','parser.py',192),
  ('DESDE_CICLO -> DESDE ID r_new_id_for EQ r_new_operator CTE_I r_new_c_int r_new_equal HASTA CTE_I r_new_c_int r_new_migajita r_compara_for HACER r_new_gotof BLOQUE r_update_for r_new_goto r_complete_gotof r_clear_for','DESDE_CICLO',20,'p_DESDE_CICLO','parser.py',197),
  ('MIENTRAS_CICLO -> MIENTRAS r_new_migajita LPAREN EXPRESION RPAREN r_new_gotof HAZ BLOQUE r_new_goto r_complete_gotof','MIENTRAS_CICLO',10,'p_MIENTRAS_CICLO','parser.py',202),
  ('LECTURA -> LEE LPAREN PARAMETRO_LECTURA RPAREN','LECTURA',4,'p_LECTURA','parser.py',207),
  ('PARAMETRO_LECTURA -> PARAMETRO_LECTURA_AUX','PARAMETRO_LECTURA',1,'p_PARAMETRO_LECTURA','parser.py',211),
  ('PARAMETRO_LECTURA -> EMPTY','PARAMETRO_LECTURA',1,'p_PARAMETRO_LECTURA','parser.py',212),
  ('PARAMETRO_LECTURA_AUX -> EXPRESION r_new_read','PARAMETRO_LECTURA_AUX',2,'p_PARAMETRO_LECTURA_AUX','parser.py',215),
  ('PARAMETRO_LECTURA_AUX -> EXPRESION r_new_read COMMA PARAMETRO_LECTURA_AUX','PARAMETRO_LECTURA_AUX',4,'p_PARAMETRO_LECTURA_AUX','parser.py',216),
  ('ESCRITURA -> ESCRIBE LPAREN PARAMETRO_ESCRITURA RPAREN','ESCRITURA',4,'p_ESCRITURA','parser.py',220),
  ('PARAMETRO_ESCRITURA -> PARAMETRO_ESCRITURA_AUX','PARAMETRO_ESCRITURA',1,'p_PARAMETRO_ESCRITURA','parser.py',224),
  ('PARAMETRO_ESCRITURA -> EMPTY','PARAMETRO_ESCRITURA',1,'p_PARAMETRO_ESCRITURA','parser.py',225),
  ('PARAMETRO_ESCRITURA_AUX -> EXPRESION r_new_write','PARAMETRO_ESCRITURA_AUX',2,'p_PARAMETRO_ESCRITURA_AUX','parser.py',229),
  ('PARAMETRO_ESCRITURA_AUX -> EXPRESION r_new_write COMMA PARAMETRO_ESCRITURA_AUX','PARAMETRO_ESCRITURA_AUX',4,'p_PARAMETRO_ESCRITURA_AUX','parser.py',230),
  ('LLAMADA -> ID r_verify_function r_generate_era LPAREN r_new_lparen TIPO_PARAMETROS r_new_rparen RPAREN r_verify_last_parameter r_generate_gosub','LLAMADA',10,'p_LLAMADA','parser.py',234),
  ('TIPO_PARAMETROS -> TIPO_PARAMETROS_AUX','TIPO_PARAMETROS',1,'p_TIPO_PARAMETROS','parser.py',238),
  ('TIPO_PARAMETROS -> EMPTY','TIPO_PARAMETROS',1,'p_TIPO_PARAMETROS','parser.py',239),
  ('TIPO_PARAMETROS_AUX -> EXPRESION r_verify_parameter','TIPO_PARAMETROS_AUX',2,'p_TIPO_PARAMETROS_AUX','parser.py',243),
  ('TIPO_PARAMETROS_AUX -> EXPRESION r_verify_parameter COMMA TIPO_PARAMETROS_AUX','TIPO_PARAMETROS_AUX',4,'p_TIPO_PARAMETROS_AUX','parser.py',244),
  ('IF_STMT -> SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_complete_gotof','IF_STMT',8,'p_IF_STMT','parser.py',250),
  ('IF_ELSE_STMT -> SI LPAREN EXPRESION RPAREN r_new_gotof ENTONCES BLOQUE r_new_goto r_complete_gotof SINO BLOQUE r_complete_goto','IF_ELSE_STMT',12,'p_IF_ELSE_STMT','parser.py',255),
  ('ASIGNACION -> EXPRESION ASIGNACION_AUX r_new_equal','ASIGNACION',3,'p_ASIGNACION','parser.py',260),
  ('ASIGNACION_AUX -> EQ r_new_operator ASIGNACION','ASIGNACION_AUX',3,'p_ASIGNACION_AUX','parser.py',264),
  ('ASIGNACION_AUX -> EMPTY','ASIGNACION_AUX',1,'p_ASIGNACION_AUX','parser.py',265),
  ('r_new_det -> <empty>','r_new_det',0,'p_r_new_det','parser.py',291),
  ('r_new_tran -> <empty>','r_new_tran',0,'p_r_new_tran','parser.py',311),
  ('r_new_inv -> <empty>','r_new_inv',0,'p_r_new_inv','parser.py',331),
  ('r_new_id -> <empty>','r_new_id',0,'p_r_new_id','parser.py',351),
  ('r_new_c_int -> <empty>','r_new_c_int',0,'p_r_new_c_int','parser.py',374),
  ('r_new_c_char -> <empty>','r_new_c_char',0,'p_r_new_c_char','parser.py',380),
  ('r_new_c_float -> <empty>','r_new_c_float',0,'p_r_new_c_float','parser.py',386),
  ('r_new_c_string -> <empty>','r_new_c_string',0,'p_r_new_c_string','parser.py',392),
  ('r_new_lparen -> <empty>','r_new_lparen',0,'p_r_new_lparen','parser.py',398),
  ('r_new_rparen -> <empty>','r_new_rparen',0,'p_r_new_rparen','parser.py',402),
  ('r_new_operator -> <empty>','r_new_operator',0,'p_r_new_operator','parser.py',408),
  ('r_new_quadruple_flevel -> <empty>','r_new_quadruple_flevel',0,'p_r_new_quadruple_flevel','parser.py',412),
  ('r_new_quadruple_slevel -> <empty>','r_new_quadruple_slevel',0,'p_r_new_quadruple_slevel','parser.py',425),
  ('r_new_quadruple_tlevel -> <empty>','r_new_quadruple_tlevel',0,'p_r_new_quadruple_tlevel','parser.py',438),
  ('r_new_quadruple -> <empty>','r_new_quadruple',0,'p_r_new_quadruple','parser.py',445),
  ('r_new_equal -> <empty>','r_new_equal',0,'p_r_new_equal','parser.py',452),
  ('r_new_goto -> <empty>','r_new_goto',0,'p_r_new_goto','parser.py',469),
  ('r_complete_goto -> <empty>','r_complete_goto',0,'p_r_complete_goto','parser.py',473),
  ('r_new_gotof -> <empty>','r_new_gotof',0,'p_r_new_gotof','parser.py',477),
  ('r_complete_gotof -> <empty>','r_complete_gotof',0,'p_r_complete_gotof','parser.py',483),
  ('r_new_migajita -> <empty>','r_new_migajita',0,'p_r_new_migajita','parser.py',487),
  ('r_new_id_for -> <empty>','r_new_id_for',0,'p_r_new_id_for','parser.py',491),
  ('r_compara_for -> <empty>','r_compara_for',0,'p_r_compara_for','parser.py',509),
  ('r_update_for -> <empty>','r_update_for',0,'p_r_update_for','parser.py',519),
  ('r_clear_for -> <empty>','r_clear_for',0,'p_r_clear_for','parser.py',528),
  ('r_clear_mem -> <empty>','r_clear_mem',0,'p_r_clear_mem','parser.py',538),
  ('r_new_function -> <empty>','r_new_function',0,'p_r_new_function','parser.py',542),
  ('r_insert_type -> <empty>','r_insert_type',0,'p_r_insert_type','parser.py',552),
  ('r_set_fun_type -> <empty>','r_set_fun_type',0,'p_r_set_fun_type','parser.py',556),
  ('r_set_fun_name -> <empty>','r_set_fun_name',0,'p_r_set_fun_name','parser.py',560),
  ('r_new_vartable -> <empty>','r_new_vartable',0,'p_r_new_vartable','parser.py',564),
  ('r_insert_parameters -> <empty>','r_insert_parameters',0,'p_r_insert_parameters','parser.py',568),
  ('r_end_function -> <empty>','r_end_function',0,'p_r_end_function','parser.py',586),
  ('r_flush_mem -> <empty>','r_flush_mem',0,'p_r_flush_mem','parser.py',592),
  ('r_verify_function -> <empty>','r_verify_function',0,'p_r_verify_function','parser.py',599),
  ('r_generate_era -> <empty>','r_generate_era',0,'p_r_generate_era','parser.py',609),
  ('r_verify_parameter -> <empty>','r_verify_parameter',0,'p_r_verify_parameter','parser.py',613),
  ('r_verify_last_parameter -> <empty>','r_verify_last_parameter',0,'p_r_verify_last_parameter','parser.py',624),
  ('r_generate_gosub -> <empty>','r_generate_gosub',0,'p_r_generate_gosub','parser.py',631),
  ('r_generate_return -> <empty>','r_generate_return',0,'p_r_generate_return','parser.py',642),
  ('r_set_var_type -> <empty>','r_set_var_type',0,'p_r_set_var_type','parser.py',659),
  ('r_new_variable -> <empty>','r_new_variable',0,'p_r_new_variable','parser.py',663),
  ('r_change_local_context -> <empty>','r_change_local_context',0,'p_r_change_local_context','parser.py',669),
  ('r_change_global_context -> <empty>','r_change_global_context',0,'p_r_change_global_context','parser.py',673),
  ('r_display_var_table -> <empty>','r_display_var_table',0,'p_r_display_var_table','parser.py',677),
  ('r_display_const -> <empty>','r_display_const',0,'p_r_display_const','parser.py',681),
  ('r_new_arr -> <empty>','r_new_arr',0,'p_r_new_arr','parser.py',685),
  ('r_new_dim -> <empty>','r_new_dim',0,'p_r_new_dim','parser.py',690),
  ('r_generate_arr -> <empty>','r_generate_arr',0,'p_r_generate_arr','parser.py',700),
  ('r_clear_arr -> <empty>','r_clear_arr',0,'p_r_clear_arr','parser.py',708),
  ('r_new_read -> <empty>','r_new_read',0,'p_r_new_read','parser.py',717),
  ('r_new_write -> <empty>','r_new_write',0,'p_r_new_write','parser.py',721),
  ('r_register_arr -> <empty>','r_register_arr',0,'p_r_register_arr','parser.py',729),
  ('r_quad_arr -> <empty>','r_quad_arr',0,'p_r_quad_arr','parser.py',734),
]
