Files
timmy-config/wizards/allegro-primus/venv/lib/python3.12/site-packages/bashlex/parsetab.py

197 lines
84 KiB
Python
Raw Normal View History

2026-03-31 20:02:01 +00:00
# /Users/idank/dev/bashlex/bashlex/parsetab.py
# This file is automatically generated. Do not edit.
_tabversion = '3.2'
_lr_method = 'LALR'
_lr_signature = "\x8b\x00\x95\xba\x1b8\x1f\x18Wq\x0f1'\xfb`\xa9"
_lr_action_items = {'DO':([3,5,6,14,16,19,22,25,26,32,33,34,36,38,41,42,46,52,53,55,56,57,58,59,61,69,70,71,72,73,74,75,76,77,78,79,80,81,83,84,85,87,88,89,94,95,96,97,110,111,112,113,115,116,118,119,131,132,137,138,141,142,145,146,147,148,149,153,154,156,157,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,198,199,200,205,208,209,210,212,215,216,218,229,233,237,238,241,242,244,246,247,252,255,258,260,261,264,265,266,267,268,273,274,275,276,277,283,284,290,294,295,296,297,300,301,302,303,307,315,337,338,343,344,345,346,],[-52,-62,-64,-73,-58,-56,-63,-156,-67,-51,-53,-72,-59,-69,-70,-110,-61,-68,-71,-163,-14,-46,-37,-31,-7,-10,-49,-145,-144,-143,-159,-158,-51,-57,-167,-43,-40,-34,-167,143,-22,-130,150,-146,155,-105,-51,-101,-54,-60,-50,-13,-25,-28,-160,-157,-19,-111,195,-167,202,-167,-167,-131,-129,-147,-140,-109,-100,-103,-102,-8,-15,-16,-29,-20,-11,-23,-47,-38,-32,-26,-44,-41,-35,-55,-9,-17,-18,-30,-21,-12,-24,-48,-39,-33,-27,-36,-45,-42,227,-97,-98,235,239,-167,-167,-167,-161,-162,-104,-99,-167,-84,-85,-134,-132,-133,-66,-65,-95,-106,-86,-167,-87,-96,-74,-167,298,-75,-138,-139,-136,-137,-135,-92,-94,-108,319,-88,-89,321,-76,-77,-82,-83,-93,-107,-80,-81,-90,-91,-78,-79,]),'FUNCTION':([0,15,24,27,28,29,48,49,51,65,66,67,68,86,89,90,91,117,134,136,143,144,148,150,151,152,155,175,190,191,192,195,197,202,204,209,210,211,212,213,222,227,228,235,236,239,240,241,242,243,244,245,253,254,291,292,293,298,299,304,305,306,312,314,316,317,318,319,320,321,322,325,326,327,329,331,339,342,],[20,20,-167,-167,-167,-167,-164,20,-167,20,-167,20,-167,20,-146,-167,-167,-165,20,20,-167,-167,-147,-167,20,20,-167,-166,-167,20,20,-167,-167,-167,-167,-167,-167,-167,-167,-167,20,-167,-167,-167,-167,-167,-167,20,20,20,20,20,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,20,20,20,-167,-167,-167,-167,20,20,20,20,-167,20,-167,]),'ELIF':([3,5,6,14,16,19,22,25,26,32,33,34,36,38,41,42,46,52,53,55,56,57,58,59,61,69,70,71,72,73,74,75,76,77,79,80,81,85,87,89,95,96,97,110,111,112,113,115,116,118,119,131,132,146,147,148,149,153,154,156,157,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,199,200,209,210,212,215,216,218,221,229,237,238,241,242,244,246,247,252,255,258,261,264,265,268,273,274,275,276,277,283,284,290,295,296,300,301,302,303,307,315,332,337,338,343,344,345,346,],[-52,-62,-64,-73,-58,-56,-63,-156,-67,-51,-53,-72,-59,-69,-70,-110,-61,-68,-71,-163,-14,-46,-37,-31,-7,-10,-49,-145,-144,-143,-159,-158,-51,-57,-43,-40,-34,-22,-130,-146,-105,-51,-101,-54,-60,-50,-13,-25,-28,-160,-157,-19,-111,-131,-129,-147,-140,-109,-100,-103,-102,-8,-15,-16,-29,-20,-11,-23,-47,-38,-32,-26,-44,-41,-35,-55,-9,-17,-18,-30,-21,-12,-24,-48,-39,-33,-27,-36,-45,-42,-97,-98,-167,-167,-167,-161,-162,-104,253,-99,-84,-85,-134,-132,-133,-66,-65,-95,-106,-86,-87,-96,-74,-75,-138,-139,-136,-137,-135,-92,-94,-108,-88,-89,-76,-77,-82,-83,-93,-107,253,-80,-81,-90,-91,-78,-79,]),'BAR':([3,5,6,14,16,19,22,25,26,32,33,34,36,38,41,42,46,52,53,55,56,57,58,59,61,69,70,76,77,79,80,81,85,95,96,97,110,111,112,113,115,116,131,132,153,154,156,157,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,176,177,178,179,180,181,182,183,184,185,186,187,188,189,199,200,215,216,218,229,237,238,246,247,252,255,258,261,264,265,268,280,281,283,284,290,295,296,300,301,302,303,307,313,315,328,337,338,343,344,345,346,],[-52,-62,-64,-73,-58,-56,-63,90,-67,-51,-53,-72,-59,-69,-70,-110,-61,-68,-71,-163,-14,-46,-37,-31,-7,-10,-49,-51,-57,-43,-40,-34,-22,-105,-51,-101,-54,-60,-50,-13,-25,-28,-19,-111,-109,-100,-103,-102,-8,-15,-16,-29,-20,-11,-23,-47,-38,-32,-26,-44,-41,-35,-55,-9,-17,-18,-30,-21,-12,-24,-48,-39,-33,-27,-36,-45,-42,-97,-98,90,90,-104,-99,-84,-85,-66,-65,-95,-106,-86,-87,-96,-74,-75,-127,311,-92,-94,-108,-88,-89,-76,-77,-82,-83,-93,311,-107,-128,-80,-81,-90,-91,-78,-79,]),'EOF':([0,3,5,6,10,11,14,15,16,19,22,25,26,32,33,34,36,38,41,42,45,46,48,49,52,53,55,56,57,58,59,61,65,67,69,70,71,72,73,74,75,76,77,79,80,81,84,85,95,96,97,110,111,112,113,115,11
_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 = {'timespec':([0,15,49,65,67,86,134,136,191,192,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,]),'redirection_list':([36,97,156,200,],[111,157,218,229,]),'list1':([86,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[146,257,273,274,275,276,277,273,274,276,273,274,276,146,146,]),'cond_command':([0,15,30,49,65,67,86,96,134,136,139,151,152,191,192,220,222,230,241,242,243,244,245,316,317,318,325,326,327,329,339,],[34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,]),'simple_command':([0,15,30,49,65,67,86,134,136,151,152,191,192,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[16,16,95,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,]),'coproc':([0,15,49,65,67,86,134,136,151,152,191,192,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,]),'function_body':([139,220,230,],[199,252,264,]),'case_command':([0,15,30,49,65,67,86,96,134,136,139,151,152,191,192,220,222,230,241,242,243,244,245,316,317,318,325,326,327,329,339,],[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,]),'newline_list':([24,27,28,29,51,66,68,78,82,83,90,91,98,138,142,143,144,145,150,155,159,190,195,197,201,202,204,209,210,211,212,213,219,227,228,233,235,236,239,240,248,253,254,260,266,291,292,293,298,299,304,305,306,312,314,319,320,321,322,331,342,],[86,86,86,86,86,134,136,137,139,141,151,152,158,198,205,86,86,208,86,86,220,86,222,222,230,86,86,241,242,243,244,245,249,222,222,267,86,86,86,86,278,86,86,294,297,316,317,318,86,86,325,326,327,329,86,222,222,86,86,339,86,]),'redirection':([0,15,16,30,36,49,65,67,86,95,97,111,134,136,151,152,156,157,191,192,200,218,222,229,241,242,243,244,245,316,317,318,325,326,327,329,339,],[33,33,33,33,110,33,33,33,33,33,110,174,33,33,33,33,110,174,33,33,110,174,33,174,33,33,33,33,33,33,33,33,33,33,33,33,33,]),'pattern':([249,278,282,],[281,281,313,]),'simple_command_element':([0,15,16,30,49,65,67,86,95,134,136,151,152,191,192,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[19,19,77,19,19,19,19,19,77,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,]),'for_command':([0,15,30,49,65,67,86,96,134,136,139,151,152,191,192,220,222,230,241,242,243,244,245,316,317,318,325,326,327,329,339,],[22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,]),'inputunit':([0,],[44,]),'empty':([24,27,28,29,51,66,68,78,82,83,90,91,98,138,142,143,144,145,150,155,159,190,195,197,201,202,204,209,210,211,212,213,219,227,228,233,235,236,239,240,248,253,254,260,266,291,292,293,298,299,304,305,306,312,314,319,320,321,322,331,342,],[89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,]),'list_terminator':([15,49,84,203,225,232,],[74,118,145,233,260,266,]),'pipeline_command':([0,15,49,65,67,86,134,136,191,192,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[45,75,119,45,45,149,45,45,45,45,149,149,149,149,149,149,149,149,149,149,149,149,149,149,]),'group_command':([0,15,30,49,65,67,86,96,134,136,139,151,152,191,192,220,222,230,241,242,243,244,245,316,317,318,325,326,327,329,339,],[41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,]),'function_def':([0,15,49,65,67,86,134,136,151,152,191,192,222,241,242,243,244,245,316,317,318,325,326,327,329,339,],[46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,]),'word_list':([196,203,],[225,232,]),'pattern_list':([219,248,],[251,279,]),'list0':([86,222,329,339,],[147,147,147,147,]),'shell_command':([0,15,30,49,65,67,86,96,134,136,139,151,152,191,192,220,222,230,241,242,243,244,245,316,317,318,325,326,327,329,339,],[36,36,97,36,36,36,36,156,36,36,200,36,36,36,36,200,36,200,36,36,36,36,36,36,36,36,36,36,36,36,36,]),'simple_list':([0,],[10,]),'compound_list':([24,27,28,29,51,143,144,150,155,190,202,204,
_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' -> inputunit","S'",1,None,None,None),
('inputunit -> simple_list simple_list_terminator','inputunit',2,'p_inputunit','/Users/idank/dev/bashlex/bashlex/parser.py',26),
('inputunit -> NEWLINE','inputunit',1,'p_inputunit','/Users/idank/dev/bashlex/bashlex/parser.py',27),
('inputunit -> error NEWLINE','inputunit',2,'p_inputunit','/Users/idank/dev/bashlex/bashlex/parser.py',28),
('inputunit -> EOF','inputunit',1,'p_inputunit','/Users/idank/dev/bashlex/bashlex/parser.py',29),
('word_list -> WORD','word_list',1,'p_word_list','/Users/idank/dev/bashlex/bashlex/parser.py',41),
('word_list -> word_list WORD','word_list',2,'p_word_list','/Users/idank/dev/bashlex/bashlex/parser.py',42),
('redirection -> LESS_LESS WORD','redirection',2,'p_redirection_heredoc','/Users/idank/dev/bashlex/bashlex/parser.py',51),
('redirection -> NUMBER LESS_LESS WORD','redirection',3,'p_redirection_heredoc','/Users/idank/dev/bashlex/bashlex/parser.py',52),
('redirection -> REDIR_WORD LESS_LESS WORD','redirection',3,'p_redirection_heredoc','/Users/idank/dev/bashlex/bashlex/parser.py',53),
('redirection -> LESS_LESS_MINUS WORD','redirection',2,'p_redirection_heredoc','/Users/idank/dev/bashlex/bashlex/parser.py',54),
('redirection -> NUMBER LESS_LESS_MINUS WORD','redirection',3,'p_redirection_heredoc','/Users/idank/dev/bashlex/bashlex/parser.py',55),
('redirection -> REDIR_WORD LESS_LESS_MINUS WORD','redirection',3,'p_redirection_heredoc','/Users/idank/dev/bashlex/bashlex/parser.py',56),
('redirection -> GREATER WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',75),
('redirection -> LESS WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',76),
('redirection -> NUMBER GREATER WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',77),
('redirection -> NUMBER LESS WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',78),
('redirection -> REDIR_WORD GREATER WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',79),
('redirection -> REDIR_WORD LESS WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',80),
('redirection -> GREATER_GREATER WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',81),
('redirection -> NUMBER GREATER_GREATER WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',82),
('redirection -> REDIR_WORD GREATER_GREATER WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',83),
('redirection -> GREATER_BAR WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',84),
('redirection -> NUMBER GREATER_BAR WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',85),
('redirection -> REDIR_WORD GREATER_BAR WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',86),
('redirection -> LESS_GREATER WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',87),
('redirection -> NUMBER LESS_GREATER WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',88),
('redirection -> REDIR_WORD LESS_GREATER WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',89),
('redirection -> LESS_LESS_LESS WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',90),
('redirection -> NUMBER LESS_LESS_LESS WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',91),
('redirection -> REDIR_WORD LESS_LESS_LESS WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',92),
('redirection -> LESS_AND NUMBER','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',93),
('redirection -> NUMBER LESS_AND NUMBER','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',94),
('redirection -> REDIR_WORD LESS_AND NUMBER','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',95),
('redirection -> GREATER_AND NUMBER','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',96),
('redirection -> NUMBER GREATER_AND NUMBER','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',97),
('redirection -> REDIR_WORD GREATER_AND NUMBER','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',98),
('redirection -> LESS_AND WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',99),
('redirection -> NUMBER LESS_AND WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',100),
('redirection -> REDIR_WORD LESS_AND WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',101),
('redirection -> GREATER_AND WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',102),
('redirection -> NUMBER GREATER_AND WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',103),
('redirection -> REDIR_WORD GREATER_AND WORD','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',104),
('redirection -> GREATER_AND DASH','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',105),
('redirection -> NUMBER GREATER_AND DASH','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',106),
('redirection -> REDIR_WORD GREATER_AND DASH','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',107),
('redirection -> LESS_AND DASH','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',108),
('redirection -> NUMBER LESS_AND DASH','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',109),
('redirection -> REDIR_WORD LESS_AND DASH','redirection',3,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',110),
('redirection -> AND_GREATER WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',111),
('redirection -> AND_GREATER_GREATER WORD','redirection',2,'p_redirection','/Users/idank/dev/bashlex/bashlex/parser.py',112),
('simple_command_element -> WORD','simple_command_element',1,'p_simple_command_element','/Users/idank/dev/bashlex/bashlex/parser.py',159),
('simple_command_element -> ASSIGNMENT_WORD','simple_command_element',1,'p_simple_command_element','/Users/idank/dev/bashlex/bashlex/parser.py',160),
('simple_command_element -> redirection','simple_command_element',1,'p_simple_command_element','/Users/idank/dev/bashlex/bashlex/parser.py',161),
('redirection_list -> redirection','redirection_list',1,'p_redirection_list','/Users/idank/dev/bashlex/bashlex/parser.py',174),
('redirection_list -> redirection_list redirection','redirection_list',2,'p_redirection_list','/Users/idank/dev/bashlex/bashlex/parser.py',175),
('simple_command -> simple_command_element','simple_command',1,'p_simple_command','/Users/idank/dev/bashlex/bashlex/parser.py',183),
('simple_command -> simple_command simple_command_element','simple_command',2,'p_simple_command','/Users/idank/dev/bashlex/bashlex/parser.py',184),
('command -> simple_command','command',1,'p_command','/Users/idank/dev/bashlex/bashlex/parser.py',191),
('command -> shell_command','command',1,'p_command','/Users/idank/dev/bashlex/bashlex/parser.py',192),
('command -> shell_command redirection_list','command',2,'p_command','/Users/idank/dev/bashlex/bashlex/parser.py',193),
('command -> function_def','command',1,'p_command','/Users/idank/dev/bashlex/bashlex/parser.py',194),
('command -> coproc','command',1,'p_command','/Users/idank/dev/bashlex/bashlex/parser.py',195),
('shell_command -> for_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',207),
('shell_command -> case_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',208),
('shell_command -> WHILE compound_list DO compound_list DONE','shell_command',5,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',209),
('shell_command -> UNTIL compound_list DO compound_list DONE','shell_command',5,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',210),
('shell_command -> select_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',211),
('shell_command -> if_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',212),
('shell_command -> subshell','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',213),
('shell_command -> group_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',214),
('shell_command -> arith_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',215),
('shell_command -> cond_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',216),
('shell_command -> arith_for_command','shell_command',1,'p_shell_command','/Users/idank/dev/bashlex/bashlex/parser.py',217),
('for_command -> FOR WORD newline_list DO compound_list DONE','for_command',6,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',254),
('for_command -> FOR WORD newline_list LEFT_CURLY compound_list RIGHT_CURLY','for_command',6,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',255),
('for_command -> FOR WORD SEMICOLON newline_list DO compound_list DONE','for_command',7,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',256),
('for_command -> FOR WORD SEMICOLON newline_list LEFT_CURLY compound_list RIGHT_CURLY','for_command',7,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',257),
('for_command -> FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE','for_command',10,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',258),
('for_command -> FOR WORD newline_list IN word_list list_terminator newline_list LEFT_CURLY compound_list RIGHT_CURLY','for_command',10,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',259),
('for_command -> FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE','for_command',9,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',260),
('for_command -> FOR WORD newline_list IN list_terminator newline_list LEFT_CURLY compound_list RIGHT_CURLY','for_command',9,'p_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',261),
('arith_for_command -> FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE','arith_for_command',7,'p_arith_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',277),
('arith_for_command -> FOR ARITH_FOR_EXPRS list_terminator newline_list LEFT_CURLY compound_list RIGHT_CURLY','arith_for_command',7,'p_arith_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',278),
('arith_for_command -> FOR ARITH_FOR_EXPRS DO compound_list DONE','arith_for_command',5,'p_arith_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',279),
('arith_for_command -> FOR ARITH_FOR_EXPRS LEFT_CURLY compound_list RIGHT_CURLY','arith_for_command',5,'p_arith_for_command','/Users/idank/dev/bashlex/bashlex/parser.py',280),
('select_command -> SELECT WORD newline_list DO list DONE','select_command',6,'p_select_command','/Users/idank/dev/bashlex/bashlex/parser.py',284),
('select_command -> SELECT WORD newline_list LEFT_CURLY list RIGHT_CURLY','select_command',6,'p_select_command','/Users/idank/dev/bashlex/bashlex/parser.py',285),
('select_command -> SELECT WORD SEMICOLON newline_list DO list DONE','select_command',7,'p_select_command','/Users/idank/dev/bashlex/bashlex/parser.py',286),
('select_command -> SELECT WORD SEMICOLON newline_list LEFT_CURLY list RIGHT_CURLY','select_command',7,'p_select_command','/Users/idank/dev/bashlex/bashlex/parser.py',287),
('select_command -> SELECT WORD newline_list IN word_list list_terminator newline_list DO list DONE','select_command',10,'p_select_command','/Users/idank/dev/bashlex/bashlex/parser.py',288),
('select_command -> SELECT WORD newline_list IN word_list list_terminator newline_list LEFT_CURLY list RIGHT_CURLY','select_command',10,'p_select_command','/Users/idank/dev/bashlex/bashlex/parser.py',289),
('case_command -> CASE WORD newline_list IN newline_list ESAC','case_command',6,'p_case_command','/Users/idank/dev/bashlex/bashlex/parser.py',293),
('case_command -> CASE WORD newline_list IN case_clause_sequence newline_list ESAC','case_command',7,'p_case_command','/Users/idank/dev/bashlex/bashlex/parser.py',294),
('case_command -> CASE WORD newline_list IN case_clause ESAC','case_command',6,'p_case_command','/Users/idank/dev/bashlex/bashlex/parser.py',295),
('function_def -> WORD LEFT_PAREN RIGHT_PAREN newline_list function_body','function_def',5,'p_function_def','/Users/idank/dev/bashlex/bashlex/parser.py',299),
('function_def -> FUNCTION WORD LEFT_PAREN RIGHT_PAREN newline_list function_body','function_def',6,'p_function_def','/Users/idank/dev/bashlex/bashlex/parser.py',300),
('function_def -> FUNCTION WORD newline_list function_body','function_def',4,'p_function_def','/Users/idank/dev/bashlex/bashlex/parser.py',301),
('function_body -> shell_command','function_body',1,'p_function_body','/Users/idank/dev/bashlex/bashlex/parser.py',310),
('function_body -> shell_command redirection_list','function_body',2,'p_function_body','/Users/idank/dev/bashlex/bashlex/parser.py',311),
('subshell -> LEFT_PAREN compound_list RIGHT_PAREN','subshell',3,'p_subshell','/Users/idank/dev/bashlex/bashlex/parser.py',321),
('coproc -> COPROC shell_command','coproc',2,'p_coproc','/Users/idank/dev/bashlex/bashlex/parser.py',329),
('coproc -> COPROC shell_command redirection_list','coproc',3,'p_coproc','/Users/idank/dev/bashlex/bashlex/parser.py',330),
('coproc -> COPROC WORD shell_command','coproc',3,'p_coproc','/Users/idank/dev/bashlex/bashlex/parser.py',331),
('coproc -> COPROC WORD shell_command redirection_list','coproc',4,'p_coproc','/Users/idank/dev/bashlex/bashlex/parser.py',332),
('coproc -> COPROC simple_command','coproc',2,'p_coproc','/Users/idank/dev/bashlex/bashlex/parser.py',333),
('if_command -> IF compound_list THEN compound_list FI','if_command',5,'p_if_command','/Users/idank/dev/bashlex/bashlex/parser.py',337),
('if_command -> IF compound_list THEN compound_list ELSE compound_list FI','if_command',7,'p_if_command','/Users/idank/dev/bashlex/bashlex/parser.py',338),
('if_command -> IF compound_list THEN compound_list elif_clause FI','if_command',6,'p_if_command','/Users/idank/dev/bashlex/bashlex/parser.py',339),
('group_command -> LEFT_CURLY compound_list RIGHT_CURLY','group_command',3,'p_group_command','/Users/idank/dev/bashlex/bashlex/parser.py',350),
('arith_command -> ARITH_CMD','arith_command',1,'p_arith_command','/Users/idank/dev/bashlex/bashlex/parser.py',358),
('cond_command -> COND_START COND_CMD COND_END','cond_command',3,'p_cond_command','/Users/idank/dev/bashlex/bashlex/parser.py',362),
('elif_clause -> ELIF compound_list THEN compound_list','elif_clause',4,'p_elif_clause','/Users/idank/dev/bashlex/bashlex/parser.py',366),
('elif_clause -> ELIF compound_list THEN compound_list ELSE compound_list','elif_clause',6,'p_elif_clause','/Users/idank/dev/bashlex/bashlex/parser.py',367),
('elif_clause -> ELIF compound_list THEN compound_list elif_clause','elif_clause',5,'p_elif_clause','/Users/idank/dev/bashlex/bashlex/parser.py',368),
('case_clause -> pattern_list','case_clause',1,'p_case_clause','/Users/idank/dev/bashlex/bashlex/parser.py',378),
('case_clause -> case_clause_sequence pattern_list','case_clause',2,'p_case_clause','/Users/idank/dev/bashlex/bashlex/parser.py',379),
('pattern_list -> newline_list pattern RIGHT_PAREN compound_list','pattern_list',4,'p_pattern_list','/Users/idank/dev/bashlex/bashlex/parser.py',383),
('pattern_list -> newline_list pattern RIGHT_PAREN newline_list','pattern_list',4,'p_pattern_list','/Users/idank/dev/bashlex/bashlex/parser.py',384),
('pattern_list -> newline_list LEFT_PAREN pattern RIGHT_PAREN compound_list','pattern_list',5,'p_pattern_list','/Users/idank/dev/bashlex/bashlex/parser.py',385),
('pattern_list -> newline_list LEFT_PAREN pattern RIGHT_PAREN newline_list','pattern_list',5,'p_pattern_list','/Users/idank/dev/bashlex/bashlex/parser.py',386),
('case_clause_sequence -> pattern_list SEMI_SEMI','case_clause_sequence',2,'p_case_clause_sequence','/Users/idank/dev/bashlex/bashlex/parser.py',390),
('case_clause_sequence -> case_clause_sequence pattern_list SEMI_SEMI','case_clause_sequence',3,'p_case_clause_sequence','/Users/idank/dev/bashlex/bashlex/parser.py',391),
('case_clause_sequence -> pattern_list SEMI_AND','case_clause_sequence',2,'p_case_clause_sequence','/Users/idank/dev/bashlex/bashlex/parser.py',392),
('case_clause_sequence -> case_clause_sequence pattern_list SEMI_AND','case_clause_sequence',3,'p_case_clause_sequence','/Users/idank/dev/bashlex/bashlex/parser.py',393),
('case_clause_sequence -> pattern_list SEMI_SEMI_AND','case_clause_sequence',2,'p_case_clause_sequence','/Users/idank/dev/bashlex/bashlex/parser.py',394),
('case_clause_sequence -> case_clause_sequence pattern_list SEMI_SEMI_AND','case_clause_sequence',3,'p_case_clause_sequence','/Users/idank/dev/bashlex/bashlex/parser.py',395),
('pattern -> WORD','pattern',1,'p_pattern','/Users/idank/dev/bashlex/bashlex/parser.py',399),
('pattern -> pattern BAR WORD','pattern',3,'p_pattern','/Users/idank/dev/bashlex/bashlex/parser.py',400),
('list -> newline_list list0','list',2,'p_list','/Users/idank/dev/bashlex/bashlex/parser.py',404),
('compound_list -> list','compound_list',1,'p_compound_list','/Users/idank/dev/bashlex/bashlex/parser.py',408),
('compound_list -> newline_list list1','compound_list',2,'p_compound_list','/Users/idank/dev/bashlex/bashlex/parser.py',409),
('list0 -> list1 NEWLINE newline_list','list0',3,'p_list0','/Users/idank/dev/bashlex/bashlex/parser.py',420),
('list0 -> list1 AMPERSAND newline_list','list0',3,'p_list0','/Users/idank/dev/bashlex/bashlex/parser.py',421),
('list0 -> list1 SEMICOLON newline_list','list0',3,'p_list0','/Users/idank/dev/bashlex/bashlex/parser.py',422),
('list1 -> list1 AND_AND newline_list list1','list1',4,'p_list1','/Users/idank/dev/bashlex/bashlex/parser.py',431),
('list1 -> list1 OR_OR newline_list list1','list1',4,'p_list1','/Users/idank/dev/bashlex/bashlex/parser.py',432),
('list1 -> list1 AMPERSAND newline_list list1','list1',4,'p_list1','/Users/idank/dev/bashlex/bashlex/parser.py',433),
('list1 -> list1 SEMICOLON newline_list list1','list1',4,'p_list1','/Users/idank/dev/bashlex/bashlex/parser.py',434),
('list1 -> list1 NEWLINE newline_list list1','list1',4,'p_list1','/Users/idank/dev/bashlex/bashlex/parser.py',435),
('list1 -> pipeline_command','list1',1,'p_list1','/Users/idank/dev/bashlex/bashlex/parser.py',436),
('simple_list_terminator -> NEWLINE','simple_list_terminator',1,'p_simple_list_terminator','/Users/idank/dev/bashlex/bashlex/parser.py',446),
('simple_list_terminator -> EOF','simple_list_terminator',1,'p_simple_list_terminator','/Users/idank/dev/bashlex/bashlex/parser.py',447),
('list_terminator -> NEWLINE','list_terminator',1,'p_list_terminator','/Users/idank/dev/bashlex/bashlex/parser.py',451),
('list_terminator -> SEMICOLON','list_terminator',1,'p_list_terminator','/Users/idank/dev/bashlex/bashlex/parser.py',452),
('list_terminator -> EOF','list_terminator',1,'p_list_terminator','/Users/idank/dev/bashlex/bashlex/parser.py',453),
('newline_list -> empty','newline_list',1,'p_newline_list','/Users/idank/dev/bashlex/bashlex/parser.py',458),
('newline_list -> newline_list NEWLINE','newline_list',2,'p_newline_list','/Users/idank/dev/bashlex/bashlex/parser.py',459),
('simple_list -> simple_list1','simple_list',1,'p_simple_list','/Users/idank/dev/bashlex/bashlex/parser.py',463),
('simple_list -> simple_list1 AMPERSAND','simple_list',2,'p_simple_list','/Users/idank/dev/bashlex/bashlex/parser.py',464),
('simple_list -> simple_list1 SEMICOLON','simple_list',2,'p_simple_list','/Users/idank/dev/bashlex/bashlex/parser.py',465),
('simple_list1 -> simple_list1 AND_AND newline_list simple_list1','simple_list1',4,'p_simple_list1','/Users/idank/dev/bashlex/bashlex/parser.py',484),
('simple_list1 -> simple_list1 OR_OR newline_list simple_list1','simple_list1',4,'p_simple_list1','/Users/idank/dev/bashlex/bashlex/parser.py',485),
('simple_list1 -> simple_list1 AMPERSAND simple_list1','simple_list1',3,'p_simple_list1','/Users/idank/dev/bashlex/bashlex/parser.py',486),
('simple_list1 -> simple_list1 SEMICOLON simple_list1','simple_list1',3,'p_simple_list1','/Users/idank/dev/bashlex/bashlex/parser.py',487),
('simple_list1 -> pipeline_command','simple_list1',1,'p_simple_list1','/Users/idank/dev/bashlex/bashlex/parser.py',488),
('pipeline_command -> pipeline','pipeline_command',1,'p_pipeline_command','/Users/idank/dev/bashlex/bashlex/parser.py',497),
('pipeline_command -> BANG pipeline_command','pipeline_command',2,'p_pipeline_command','/Users/idank/dev/bashlex/bashlex/parser.py',498),
('pipeline_command -> timespec pipeline_command','pipeline_command',2,'p_pipeline_command','/Users/idank/dev/bashlex/bashlex/parser.py',499),
('pipeline_command -> timespec list_terminator','pipeline_command',2,'p_pipeline_command','/Users/idank/dev/bashlex/bashlex/parser.py',500),
('pipeline_command -> BANG list_terminator','pipeline_command',2,'p_pipeline_command','/Users/idank/dev/bashlex/bashlex/parser.py',501),
('pipeline -> pipeline BAR newline_list pipeline','pipeline',4,'p_pipeline','/Users/idank/dev/bashlex/bashlex/parser.py',520),
('pipeline -> pipeline BAR_AND newline_list pipeline','pipeline',4,'p_pipeline','/Users/idank/dev/bashlex/bashlex/parser.py',521),
('pipeline -> command','pipeline',1,'p_pipeline','/Users/idank/dev/bashlex/bashlex/parser.py',522),
('timespec -> TIME','timespec',1,'p_timespec','/Users/idank/dev/bashlex/bashlex/parser.py',531),
('timespec -> TIME TIMEOPT','timespec',2,'p_timespec','/Users/idank/dev/bashlex/bashlex/parser.py',532),
('timespec -> TIME TIMEOPT TIMEIGN','timespec',3,'p_timespec','/Users/idank/dev/bashlex/bashlex/parser.py',533),
('empty -> <empty>','empty',0,'p_empty','/Users/idank/dev/bashlex/bashlex/parser.py',537),
]