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

_lr_method = 'LALR'

_lr_signature = 'leftORORleftANDANDleftEQEQNOTEQleftGTGTEQLTLTEQleftPLUSMINUSrightNOTANDAND COMMA COMMENT DOT ELSE EQ EQEQ FALSE GT GTEQ IF INTEGER LBRACE LBRACK LPAREN LT LTEQ MINUS MINUSEQ NAME NOT NOTEQ OROR PLUS PLUSEQ RBRACE RBRACK RPAREN STRING TRUEfile : statement_liststatement : comment\n| assignment\n| call\n| conditioncomment : COMMENTlvalue : NAME\n| array_access\n| scope_accessassignment : lvalue EQ expr\n| lvalue PLUSEQ expr\n| lvalue MINUSEQ exprcall : NAME LPAREN RPAREN\n| NAME LPAREN RPAREN blockcall : NAME LPAREN expr_list RPAREN\n| NAME LPAREN expr_list RPAREN blockcondition : IF LPAREN expr RPAREN block\n| IF LPAREN expr RPAREN block ELSE condition\n| IF LPAREN expr RPAREN block ELSE blockblock : LBRACE RBRACE\n| LBRACE statement_list RBRACEstatement_list : statement\n| statement_list statementarray_access : NAME LBRACK expr RBRACKscope_access : NAME DOT NAMEexpr : primary_exprexpr : expr PLUS expr\n| expr MINUS  expr\n| expr GT expr\n| expr GTEQ  expr\n| expr LT  expr\n| expr LTEQ expr\n| expr EQEQ expr\n| expr NOTEQ expr\n| expr ANDAND expr\n| expr OROR exprexpr : NOT exprprimary_expr : NAMEprimary_expr : STRINGprimary_expr : INTEGER\n| TRUE\n| FALSE\n| call\n| array_access\n| scope_access\n| block\n| LPAREN expr RPARENprimary_expr : LBRACK RBRACK\n| LBRACK expr_list RBRACK\n| LBRACK expr_list COMMA RBRACKexpr_list : expr\n| expr_list COMMA expr'
    
_lr_action_items = {'COMMENT':([0,2,3,4,5,6,7,8,14,22,23,25,26,27,28,29,30,31,32,33,36,37,38,39,43,55,57,59,60,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,82,83,85,86,],[8,8,-22,-2,-3,-4,-5,-6,-23,-10,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,8,-11,-12,-13,-25,-37,-48,-20,8,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,-17,-50,-19,-18,]),'NAME':([0,2,3,4,5,6,7,8,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,43,45,46,47,48,49,50,51,52,53,54,55,57,59,60,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,85,86,],[10,10,-22,-2,-3,-4,-5,-6,-23,25,25,25,25,25,43,25,-10,-26,25,-38,-39,-40,-41,-42,-43,-44,-45,-46,25,25,10,-11,-12,-13,-25,25,25,25,25,25,25,25,25,25,25,-37,-48,-20,10,-14,-15,25,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,25,-21,-16,-17,-50,-19,-18,]),'IF':([0,2,3,4,5,6,7,8,14,22,23,25,26,27,28,29,30,31,32,33,36,37,38,39,43,55,57,59,60,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,82,83,84,85,86,],[11,11,-22,-2,-3,-4,-5,-6,-23,-10,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,11,-11,-12,-13,-25,-37,-48,-20,11,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,-17,-50,11,-19,-18,]),'$end':([1,2,3,4,5,6,7,8,14,22,23,25,26,27,28,29,30,31,32,33,37,38,39,43,55,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,82,83,85,86,],[0,-1,-22,-2,-3,-4,-5,-6,-23,-10,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,-11,-12,-13,-25,-37,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,-17,-50,-19,-18,]),'RBRACE':([3,4,5,6,7,8,14,22,23,25,26,27,28,29,30,31,32,33,36,37,38,39,43,55,57,59,60,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,82,83,85,86,],[-22,-2,-3,-4,-5,-6,-23,-10,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,59,-11,-12,-13,-25,-37,-48,-20,79,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,-17,-50,-19,-18,]),'EQ':([9,10,12,13,43,64,],[15,-7,-8,-9,-25,-24,]),'PLUSEQ':([9,10,12,13,43,64,],[16,-7,-8,-9,-25,-24,]),'MINUSEQ':([9,10,12,13,43,64,],[17,-7,-8,-9,-25,-24,]),'LPAREN':([10,11,15,16,17,18,19,21,24,25,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[18,21,34,34,34,34,34,34,34,18,34,34,34,34,34,34,34,34,34,34,34,34,34,34,]),'LBRACK':([10,15,16,17,18,19,21,24,25,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[19,35,35,35,35,35,35,35,19,35,35,35,35,35,35,35,35,35,35,35,35,35,35,]),'DOT':([10,25,],[20,20,]),'NOT':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,]),'STRING':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,]),'INTEGER':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,]),'TRUE':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,]),'FALSE':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,]),'LBRACE':([15,16,17,18,19,21,24,34,35,39,45,46,47,48,49,50,51,52,53,54,62,63,65,78,84,],[36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,]),'RPAREN':([18,23,25,26,27,28,29,30,31,32,33,39,40,41,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[39,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,-13,62,-51,-25,65,-37,76,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,-52,-50,]),'PLUS':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[45,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,45,45,-13,45,45,-25,45,-37,45,-48,-20,-14,-15,-24,-27,-28,45,45,45,45,45,45,45,45,-47,-49,-21,-16,45,-50,]),'MINUS':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[46,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,46,46,-13,46,46,-25,46,-37,46,-48,-20,-14,-15,-24,-27,-28,46,46,46,46,46,46,46,46,-47,-49,-21,-16,46,-50,]),'GT':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[47,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,47,47,-13,47,47,-25,47,-37,47,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,47,47,47,47,-47,-49,-21,-16,47,-50,]),'GTEQ':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[48,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,48,48,-13,48,48,-25,48,-37,48,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,48,48,48,48,-47,-49,-21,-16,48,-50,]),'LT':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[49,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,49,49,-13,49,49,-25,49,-37,49,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,49,49,49,49,-47,-49,-21,-16,49,-50,]),'LTEQ':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[50,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,50,50,-13,50,50,-25,50,-37,50,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,50,50,50,50,-47,-49,-21,-16,50,-50,]),'EQEQ':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[51,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,51,51,-13,51,51,-25,51,-37,51,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,51,51,-47,-49,-21,-16,51,-50,]),'NOTEQ':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[52,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,52,52,-13,52,52,-25,52,-37,52,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,52,52,-47,-49,-21,-16,52,-50,]),'ANDAND':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[53,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,53,53,-13,53,53,-25,53,-37,53,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,53,-47,-49,-21,-16,53,-50,]),'OROR':([22,23,25,26,27,28,29,30,31,32,33,37,38,39,41,42,43,44,55,56,57,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[54,-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,54,54,-13,54,54,-25,54,-37,54,-48,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,54,-50,]),'COMMA':([23,25,26,27,28,29,30,31,32,33,39,40,41,43,55,57,58,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,83,],[-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,-13,63,-51,-25,-37,-48,78,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,-21,-16,-52,-50,]),'RBRACK':([23,25,26,27,28,29,30,31,32,33,35,39,41,42,43,55,57,58,59,61,62,64,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,83,],[-26,-38,-39,-40,-41,-42,-43,-44,-45,-46,57,-13,-51,64,-25,-37,-48,77,-20,-14,-15,-24,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-47,-49,83,-21,-16,-52,-50,]),'ELSE':([59,79,82,],[-20,-21,84,]),}

_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 = {'file':([0,],[1,]),'statement_list':([0,36,],[2,60,]),'statement':([0,2,36,60,],[3,14,3,14,]),'comment':([0,2,36,60,],[4,4,4,4,]),'assignment':([0,2,36,60,],[5,5,5,5,]),'call':([0,2,15,16,17,18,19,21,24,34,35,36,45,46,47,48,49,50,51,52,53,54,60,63,78,],[6,6,30,30,30,30,30,30,30,30,30,6,30,30,30,30,30,30,30,30,30,30,6,30,30,]),'condition':([0,2,36,60,84,],[7,7,7,7,86,]),'lvalue':([0,2,36,60,],[9,9,9,9,]),'array_access':([0,2,15,16,17,18,19,21,24,34,35,36,45,46,47,48,49,50,51,52,53,54,60,63,78,],[12,12,31,31,31,31,31,31,31,31,31,12,31,31,31,31,31,31,31,31,31,31,12,31,31,]),'scope_access':([0,2,15,16,17,18,19,21,24,34,35,36,45,46,47,48,49,50,51,52,53,54,60,63,78,],[13,13,32,32,32,32,32,32,32,32,32,13,32,32,32,32,32,32,32,32,32,32,13,32,32,]),'expr':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[22,37,38,41,42,44,55,56,41,66,67,68,69,70,71,72,73,74,75,81,81,]),'primary_expr':([15,16,17,18,19,21,24,34,35,45,46,47,48,49,50,51,52,53,54,63,78,],[23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,]),'block':([15,16,17,18,19,21,24,34,35,39,45,46,47,48,49,50,51,52,53,54,62,63,65,78,84,],[33,33,33,33,33,33,33,33,33,61,33,33,33,33,33,33,33,33,33,33,80,33,82,33,85,]),'expr_list':([18,35,],[40,58,]),}

_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' -> file","S'",1,None,None,None),
  ('file -> statement_list','file',1,'p_file','gni-to-cmake.py',177),
  ('statement -> comment','statement',1,'p_statement','gni-to-cmake.py',181),
  ('statement -> assignment','statement',1,'p_statement','gni-to-cmake.py',182),
  ('statement -> call','statement',1,'p_statement','gni-to-cmake.py',183),
  ('statement -> condition','statement',1,'p_statement','gni-to-cmake.py',184),
  ('comment -> COMMENT','comment',1,'p_comment','gni-to-cmake.py',188),
  ('lvalue -> NAME','lvalue',1,'p_lvalue','gni-to-cmake.py',192),
  ('lvalue -> array_access','lvalue',1,'p_lvalue','gni-to-cmake.py',193),
  ('lvalue -> scope_access','lvalue',1,'p_lvalue','gni-to-cmake.py',194),
  ('assignment -> lvalue EQ expr','assignment',3,'p_assignment','gni-to-cmake.py',198),
  ('assignment -> lvalue PLUSEQ expr','assignment',3,'p_assignment','gni-to-cmake.py',199),
  ('assignment -> lvalue MINUSEQ expr','assignment',3,'p_assignment','gni-to-cmake.py',200),
  ('call -> NAME LPAREN RPAREN','call',3,'p_call_0','gni-to-cmake.py',204),
  ('call -> NAME LPAREN RPAREN block','call',4,'p_call_0','gni-to-cmake.py',205),
  ('call -> NAME LPAREN expr_list RPAREN','call',4,'p_call_1','gni-to-cmake.py',210),
  ('call -> NAME LPAREN expr_list RPAREN block','call',5,'p_call_1','gni-to-cmake.py',211),
  ('condition -> IF LPAREN expr RPAREN block','condition',5,'p_condition','gni-to-cmake.py',216),
  ('condition -> IF LPAREN expr RPAREN block ELSE condition','condition',7,'p_condition','gni-to-cmake.py',217),
  ('condition -> IF LPAREN expr RPAREN block ELSE block','condition',7,'p_condition','gni-to-cmake.py',218),
  ('block -> LBRACE RBRACE','block',2,'p_block','gni-to-cmake.py',225),
  ('block -> LBRACE statement_list RBRACE','block',3,'p_block','gni-to-cmake.py',226),
  ('statement_list -> statement','statement_list',1,'p_statement_list','gni-to-cmake.py',233),
  ('statement_list -> statement_list statement','statement_list',2,'p_statement_list','gni-to-cmake.py',234),
  ('array_access -> NAME LBRACK expr RBRACK','array_access',4,'p_array_access','gni-to-cmake.py',241),
  ('scope_access -> NAME DOT NAME','scope_access',3,'p_scope_access','gni-to-cmake.py',245),
  ('expr -> primary_expr','expr',1,'p_expr_primary','gni-to-cmake.py',249),
  ('expr -> expr PLUS expr','expr',3,'p_expr_binary','gni-to-cmake.py',253),
  ('expr -> expr MINUS expr','expr',3,'p_expr_binary','gni-to-cmake.py',254),
  ('expr -> expr GT expr','expr',3,'p_expr_binary','gni-to-cmake.py',255),
  ('expr -> expr GTEQ expr','expr',3,'p_expr_binary','gni-to-cmake.py',256),
  ('expr -> expr LT expr','expr',3,'p_expr_binary','gni-to-cmake.py',257),
  ('expr -> expr LTEQ expr','expr',3,'p_expr_binary','gni-to-cmake.py',258),
  ('expr -> expr EQEQ expr','expr',3,'p_expr_binary','gni-to-cmake.py',259),
  ('expr -> expr NOTEQ expr','expr',3,'p_expr_binary','gni-to-cmake.py',260),
  ('expr -> expr ANDAND expr','expr',3,'p_expr_binary','gni-to-cmake.py',261),
  ('expr -> expr OROR expr','expr',3,'p_expr_binary','gni-to-cmake.py',262),
  ('expr -> NOT expr','expr',2,'p_expr_unary','gni-to-cmake.py',266),
  ('primary_expr -> NAME','primary_expr',1,'p_primary_expr_name','gni-to-cmake.py',270),
  ('primary_expr -> STRING','primary_expr',1,'p_primary_expr_sliteral','gni-to-cmake.py',274),
  ('primary_expr -> INTEGER','primary_expr',1,'p_primary_expr','gni-to-cmake.py',278),
  ('primary_expr -> TRUE','primary_expr',1,'p_primary_expr','gni-to-cmake.py',279),
  ('primary_expr -> FALSE','primary_expr',1,'p_primary_expr','gni-to-cmake.py',280),
  ('primary_expr -> call','primary_expr',1,'p_primary_expr','gni-to-cmake.py',281),
  ('primary_expr -> array_access','primary_expr',1,'p_primary_expr','gni-to-cmake.py',282),
  ('primary_expr -> scope_access','primary_expr',1,'p_primary_expr','gni-to-cmake.py',283),
  ('primary_expr -> block','primary_expr',1,'p_primary_expr','gni-to-cmake.py',284),
  ('primary_expr -> LPAREN expr RPAREN','primary_expr',3,'p_primary_expr','gni-to-cmake.py',285),
  ('primary_expr -> LBRACK RBRACK','primary_expr',2,'p_primary_expr_2','gni-to-cmake.py',292),
  ('primary_expr -> LBRACK expr_list RBRACK','primary_expr',3,'p_primary_expr_2','gni-to-cmake.py',293),
  ('primary_expr -> LBRACK expr_list COMMA RBRACK','primary_expr',4,'p_primary_expr_2','gni-to-cmake.py',294),
  ('expr_list -> expr','expr_list',1,'p_expr_list','gni-to-cmake.py',301),
  ('expr_list -> expr_list COMMA expr','expr_list',3,'p_expr_list','gni-to-cmake.py',302),
]
