# -*- coding: utf-8 -*-
# Licensed under a 3-clause BSD style license - see LICENSE.rst

# This file was automatically generated from ply. To re-generate this file,
# remove it from this folder, then build astropy and run the tests in-place:
#
#   python setup.py build_ext --inplace
#   pytest astropy/units
#
# You can then commit the changes to this file.


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

_lr_method = 'LALR'

_lr_signature = 'CLOSE_BRACKET CLOSE_PAREN DIVISION OPEN_BRACKET OPEN_PAREN PRODUCT SIGN UFLOAT UINT UNIT X\n            main : factor combined_units\n                 | combined_units\n                 | OPEN_BRACKET combined_units CLOSE_BRACKET\n                 | factor\n            \n            combined_units : product_of_units\n                           | division_of_units\n            \n            product_of_units : unit_expression PRODUCT combined_units\n                             | unit_expression\n            \n            division_of_units : DIVISION unit_expression\n                              | unit_expression DIVISION combined_units\n            \n            unit_expression : unit_with_power\n                            | OPEN_PAREN combined_units CLOSE_PAREN\n            \n            factor : signed_float X UINT signed_int\n                   | UINT X UINT signed_int\n                   | UINT signed_int\n                   | UINT\n                   | signed_float\n            \n            unit_with_power : UNIT numeric_power\n                            | UNIT\n            \n            numeric_power : sign UINT\n            \n            sign : SIGN\n                 |\n            \n            signed_int : SIGN UINT\n            \n            signed_float : sign UINT\n                         | sign UFLOAT\n            '
    
_lr_action_items = {'OPEN_BRACKET':([0,],[4,]),'UINT':([0,9,12,15,18,19,21,29,],[6,22,-21,-22,31,32,33,37,]),'DIVISION':([0,2,4,5,6,10,13,14,15,20,22,23,24,25,28,33,36,37,38,39,],[11,11,11,-17,-16,25,-11,11,-19,-15,-24,-25,11,11,-18,-23,-12,-20,-13,-14,]),'SIGN':([0,6,15,31,32,],[12,21,12,21,21,]),'UFLOAT':([0,9,12,],[-22,23,-21,]),'OPEN_PAREN':([0,2,4,5,6,11,14,20,22,23,24,25,33,38,39,],[14,14,14,-17,-16,14,14,-15,-24,-25,14,14,-23,-13,-14,]),'UNIT':([0,2,4,5,6,11,14,20,22,23,24,25,33,38,39,],[15,15,15,-17,-16,15,15,-15,-24,-25,15,15,-23,-13,-14,]),'$end':([1,2,3,5,6,7,8,10,13,15,16,20,22,23,26,28,30,33,34,35,36,37,38,39,],[0,-4,-2,-17,-16,-5,-6,-8,-11,-19,-1,-15,-24,-25,-9,-18,-3,-23,-7,-10,-12,-20,-13,-14,]),'X':([5,6,22,23,],[18,19,-24,-25,]),'CLOSE_BRACKET':([7,8,10,13,15,17,26,28,34,35,36,37,],[-5,-6,-8,-11,-19,30,-9,-18,-7,-10,-12,-20,]),'CLOSE_PAREN':([7,8,10,13,15,26,27,28,34,35,36,37,],[-5,-6,-8,-11,-19,-9,36,-18,-7,-10,-12,-20,]),'PRODUCT':([10,13,15,28,36,37,],[24,-11,-19,-18,-12,-20,]),}

_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 = {'main':([0,],[1,]),'factor':([0,],[2,]),'combined_units':([0,2,4,14,24,25,],[3,16,17,27,34,35,]),'signed_float':([0,],[5,]),'product_of_units':([0,2,4,14,24,25,],[7,7,7,7,7,7,]),'division_of_units':([0,2,4,14,24,25,],[8,8,8,8,8,8,]),'sign':([0,15,],[9,29,]),'unit_expression':([0,2,4,11,14,24,25,],[10,10,10,26,10,10,10,]),'unit_with_power':([0,2,4,11,14,24,25,],[13,13,13,13,13,13,13,]),'signed_int':([6,31,32,],[20,38,39,]),'numeric_power':([15,],[28,]),}

_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' -> main","S'",1,None,None,None),
  ('main -> factor combined_units','main',2,'p_main','cds.py',163),
  ('main -> combined_units','main',1,'p_main','cds.py',164),
  ('main -> OPEN_BRACKET combined_units CLOSE_BRACKET','main',3,'p_main','cds.py',165),
  ('main -> factor','main',1,'p_main','cds.py',166),
  ('combined_units -> product_of_units','combined_units',1,'p_combined_units','cds.py',179),
  ('combined_units -> division_of_units','combined_units',1,'p_combined_units','cds.py',180),
  ('product_of_units -> unit_expression PRODUCT combined_units','product_of_units',3,'p_product_of_units','cds.py',186),
  ('product_of_units -> unit_expression','product_of_units',1,'p_product_of_units','cds.py',187),
  ('division_of_units -> DIVISION unit_expression','division_of_units',2,'p_division_of_units','cds.py',196),
  ('division_of_units -> unit_expression DIVISION combined_units','division_of_units',3,'p_division_of_units','cds.py',197),
  ('unit_expression -> unit_with_power','unit_expression',1,'p_unit_expression','cds.py',206),
  ('unit_expression -> OPEN_PAREN combined_units CLOSE_PAREN','unit_expression',3,'p_unit_expression','cds.py',207),
  ('factor -> signed_float X UINT signed_int','factor',4,'p_factor','cds.py',216),
  ('factor -> UINT X UINT signed_int','factor',4,'p_factor','cds.py',217),
  ('factor -> UINT signed_int','factor',2,'p_factor','cds.py',218),
  ('factor -> UINT','factor',1,'p_factor','cds.py',219),
  ('factor -> signed_float','factor',1,'p_factor','cds.py',220),
  ('unit_with_power -> UNIT numeric_power','unit_with_power',2,'p_unit_with_power','cds.py',237),
  ('unit_with_power -> UNIT','unit_with_power',1,'p_unit_with_power','cds.py',238),
  ('numeric_power -> sign UINT','numeric_power',2,'p_numeric_power','cds.py',247),
  ('sign -> SIGN','sign',1,'p_sign','cds.py',253),
  ('sign -> <empty>','sign',0,'p_sign','cds.py',254),
  ('signed_int -> SIGN UINT','signed_int',2,'p_signed_int','cds.py',263),
  ('signed_float -> sign UINT','signed_float',2,'p_signed_float','cds.py',269),
  ('signed_float -> sign UFLOAT','signed_float',2,'p_signed_float','cds.py',270),
]
