aboutsummaryrefslogtreecommitdiff
path: root/ql/parser/parsetab.py
diff options
context:
space:
mode:
authorBicker <bickerkards@tuta.io>2019-05-22 17:45:37 +0200
committerBicker <bickerkards@tuta.io>2019-05-22 17:45:37 +0200
commit25314fd2aed81aa5281bc3d93dbcc7919368ebe1 (patch)
tree1995521ee652e419926de5fced0f2e3b655e70fb /ql/parser/parsetab.py
Initial commitHEADmaster
Diffstat (limited to 'ql/parser/parsetab.py')
-rw-r--r--ql/parser/parsetab.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/ql/parser/parsetab.py b/ql/parser/parsetab.py
new file mode 100644
index 0000000..b978ef8
--- /dev/null
+++ b/ql/parser/parsetab.py
@@ -0,0 +1,76 @@
+
+# parsetab.py
+# This file is automatically generated. Do not edit.
+# pylint: disable=W,C,R
+_tabversion = '3.10'
+
+_lr_method = 'LALR'
+
+_lr_signature = 'leftORleftANDnonassocEQUALSNOT_EQUALSnonassocLESS_EQUALSLESS_THANGREATER_EQUALSGREATER_THANleftPLUSMINUSleftTIMESDIVIDErightNOTAND ASSIGN BOOLEAN COLON DATE DATE_LITERAL DECIMAL DECIMAL_LITERAL DIVIDE DOLLAR EQUALS FALSE FORM GREATER_EQUALS GREATER_THAN IDENTIFIER IF INTEGER INTEGER_LITERAL LEFT_BRACE LEFT_BRACKET LESS_EQUALS LESS_THAN MINUS MONEY NOT NOT_EQUALS OR PLUS RIGHT_BRACE RIGHT_BRACKET RUBLE STRING STRING_LITERAL TIMES TRUEform : FORM IDENTIFIER blockblock : LEFT_BRACE statements RIGHT_BRACEstatements : statement statements\n | statementstatement : if\n | questionquestion : STRING_LITERAL IDENTIFIER COLON typequestion : STRING_LITERAL IDENTIFIER COLON type ASSIGN expressionif : IF condition blockcondition : LEFT_BRACKET expression RIGHT_BRACKETexpression : LEFT_BRACKET expression RIGHT_BRACKETexpression : IDENTIFIERexpression : NOT expressionexpression : MINUS expressionexpression : expression AND expressionexpression : expression OR expressionexpression : expression PLUS expressionexpression : expression MINUS expressionexpression : expression TIMES expressionexpression : expression DIVIDE expressionexpression : expression EQUALS expressionexpression : expression NOT_EQUALS expressionexpression : expression LESS_EQUALS expressionexpression : expression LESS_THAN expressionexpression : expression GREATER_EQUALS expressionexpression : expression GREATER_THAN expressionexpression : FALSE\n | TRUEexpression : DATE_LITERALexpression : INTEGER_LITERALexpression : DECIMAL_LITERALexpression : currency DECIMAL_LITERAL\n | currency INTEGER_LITERALexpression : STRING_LITERALcurrency : DOLLAR\n | RUBLEtype : BOOLEANtype : DECIMALtype : STRINGtype : DATEtype : MONEYtype : INTEGERform : FORM LEFT_BRACEform : FORM IDENTIFIER LEFT_BRACE RIGHT_BRACEstatement : IF condition LEFT_BRACE RIGHT_BRACEcondition : LEFT_BRACKET RIGHT_BRACKET'
+
+_lr_action_items = {'RIGHT_BRACKET':([17,24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,],[21,-29,-30,-34,-31,-28,43,-12,-27,-32,-33,-14,-13,63,-11,-17,-22,-21,-24,-18,-19,-16,-20,-15,-26,-23,-25,]),'TRUE':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,]),'LEFT_BRACE':([1,3,16,21,43,],[4,5,19,-46,-10,]),'RUBLE':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,]),'DATE_LITERAL':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,]),'MINUS':([17,24,25,26,27,28,30,31,32,33,34,35,38,39,40,41,42,44,45,46,47,48,49,50,51,52,53,54,55,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,],[25,-29,25,-30,25,-34,25,-31,-28,48,-12,-27,-32,-33,-14,-13,48,25,25,25,25,25,25,25,25,25,25,25,25,-11,-17,48,48,48,-18,-19,48,-20,48,48,48,48,25,48,]),'INTEGER_LITERAL':([17,22,23,25,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[26,39,-36,26,26,-35,26,26,26,26,26,26,26,26,26,26,26,26,26,26,]),'TIMES':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,49,-12,-27,-32,-33,49,-13,49,-11,49,49,49,49,49,-19,49,-20,49,49,49,49,49,]),'NOT':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,]),'DOLLAR':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,]),'MONEY':([36,],[60,]),'INTEGER':([36,],[61,]),'AND':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,52,-12,-27,-32,-33,-14,-13,52,-11,-17,-22,-21,-24,-18,-19,52,-20,-15,-26,-23,-25,52,]),'NOT_EQUALS':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,45,-12,-27,-32,-33,-14,-13,45,-11,-17,None,None,-24,-18,-19,45,-20,45,-26,-23,-25,45,]),'ASSIGN':([56,57,58,59,60,61,62,],[-40,-38,-39,76,-41,-42,-37,]),'BOOLEAN':([36,],[62,]),'FORM':([0,],[1,]),'IF':([5,7,8,10,14,19,20,24,26,28,31,32,34,35,37,38,39,40,41,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[11,-5,-6,11,-2,11,-9,-29,-30,-34,-31,-28,-12,-27,-45,-32,-33,-14,-13,-40,-38,-39,-7,-41,-42,-37,-11,-17,-22,-21,-24,-18,-19,-16,-20,-15,-26,-23,-25,-8,]),'LEFT_BRACKET':([11,17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[17,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,]),'PLUS':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,44,-12,-27,-32,-33,-14,-13,44,-11,-17,44,44,44,-18,-19,44,-20,44,44,44,44,44,]),'$end':([2,4,6,13,14,],[0,-43,-1,-44,-2,]),'EQUALS':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,46,-12,-27,-32,-33,-14,-13,46,-11,-17,None,None,-24,-18,-19,46,-20,46,-26,-23,-25,46,]),'IDENTIFIER':([1,12,17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[3,18,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,]),'LESS_THAN':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,47,-12,-27,-32,-33,-14,-13,47,-11,-17,47,47,None,-18,-19,47,-20,47,None,None,None,47,]),'STRING':([36,],[58,]),'COLON':([18,],[36,]),'DATE':([36,],[56,]),'STRING_LITERAL':([5,7,8,10,14,17,19,20,24,25,26,27,28,30,31,32,34,35,37,38,39,40,41,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,],[12,-5,-6,12,-2,28,12,-9,-29,28,-30,28,-34,28,-31,-28,-12,-27,-45,-32,-33,-14,-13,28,28,28,28,28,28,28,28,28,28,28,28,-40,-38,-39,-7,-41,-42,-37,-11,-17,-22,-21,-24,-18,-19,-16,-20,-15,-26,-23,-25,28,-8,]),'DECIMAL_LITERAL':([17,22,23,25,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[31,38,-36,31,31,-35,31,31,31,31,31,31,31,31,31,31,31,31,31,31,]),'OR':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,50,-12,-27,-32,-33,-14,-13,50,-11,-17,-22,-21,-24,-18,-19,-16,-20,-15,-26,-23,-25,50,]),'FALSE':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,]),'DECIMAL':([36,],[57,]),'DIVIDE':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,51,-12,-27,-32,-33,51,-13,51,-11,51,51,51,51,51,-19,51,-20,51,51,51,51,51,]),'LESS_EQUALS':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,54,-12,-27,-32,-33,-14,-13,54,-11,-17,54,54,None,-18,-19,54,-20,54,None,None,None,54,]),'RIGHT_BRACE':([5,7,8,9,10,14,15,19,20,24,26,28,31,32,34,35,37,38,39,40,41,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[13,-5,-6,14,-4,-2,-3,37,-9,-29,-30,-34,-31,-28,-12,-27,-45,-32,-33,-14,-13,-40,-38,-39,-7,-41,-42,-37,-11,-17,-22,-21,-24,-18,-19,-16,-20,-15,-26,-23,-25,-8,]),'GREATER_EQUALS':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,55,-12,-27,-32,-33,-14,-13,55,-11,-17,55,55,None,-18,-19,55,-20,55,None,None,None,55,]),'GREATER_THAN':([24,26,28,31,32,33,34,35,38,39,40,41,42,63,64,65,66,67,68,69,70,71,72,73,74,75,77,],[-29,-30,-34,-31,-28,53,-12,-27,-32,-33,-14,-13,53,-11,-17,53,53,None,-18,-19,53,-20,53,None,None,None,53,]),}
+
+_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 = {'if':([5,10,19,],[7,7,7,]),'condition':([11,],[16,]),'question':([5,10,19,],[8,8,8,]),'expression':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[33,40,41,42,64,65,66,67,68,69,70,71,72,73,74,75,77,]),'currency':([17,25,27,30,44,45,46,47,48,49,50,51,52,53,54,55,76,],[22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,]),'type':([36,],[59,]),'statements':([5,10,19,],[9,15,9,]),'statement':([5,10,19,],[10,10,10,]),'form':([0,],[2,]),'block':([3,16,],[6,20,]),}
+
+_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' -> form","S'",1,None,None,None),
+ ('form -> FORM IDENTIFIER block','form',3,'p_form','parser.py',78),
+ ('block -> LEFT_BRACE statements RIGHT_BRACE','block',3,'p_block','parser.py',83),
+ ('statements -> statement statements','statements',2,'p_statements','parser.py',89),
+ ('statements -> statement','statements',1,'p_statements','parser.py',90),
+ ('statement -> if','statement',1,'p_statement','parser.py',98),
+ ('statement -> question','statement',1,'p_statement','parser.py',99),
+ ('question -> STRING_LITERAL IDENTIFIER COLON type','question',4,'p_question','parser.py',105),
+ ('question -> STRING_LITERAL IDENTIFIER COLON type ASSIGN expression','question',6,'p_question_computed','parser.py',111),
+ ('if -> IF condition block','if',3,'p_if','parser.py',118),
+ ('condition -> LEFT_BRACKET expression RIGHT_BRACKET','condition',3,'p_condition','parser.py',123),
+ ('expression -> LEFT_BRACKET expression RIGHT_BRACKET','expression',3,'p_parenthesis','parser.py',129),
+ ('expression -> IDENTIFIER','expression',1,'p_variable','parser.py',134),
+ ('expression -> NOT expression','expression',2,'p_not','parser.py',141),
+ ('expression -> MINUS expression','expression',2,'p_negative','parser.py',147),
+ ('expression -> expression AND expression','expression',3,'p_and','parser.py',154),
+ ('expression -> expression OR expression','expression',3,'p_or','parser.py',160),
+ ('expression -> expression PLUS expression','expression',3,'p_plus','parser.py',166),
+ ('expression -> expression MINUS expression','expression',3,'p_minus','parser.py',172),
+ ('expression -> expression TIMES expression','expression',3,'p_times','parser.py',178),
+ ('expression -> expression DIVIDE expression','expression',3,'p_divide','parser.py',184),
+ ('expression -> expression EQUALS expression','expression',3,'p_equals','parser.py',190),
+ ('expression -> expression NOT_EQUALS expression','expression',3,'p_not_equals','parser.py',196),
+ ('expression -> expression LESS_EQUALS expression','expression',3,'p_less_equals','parser.py',202),
+ ('expression -> expression LESS_THAN expression','expression',3,'p_less_than','parser.py',208),
+ ('expression -> expression GREATER_EQUALS expression','expression',3,'p_greater_equals','parser.py',214),
+ ('expression -> expression GREATER_THAN expression','expression',3,'p_greater_than','parser.py',220),
+ ('expression -> FALSE','expression',1,'p_boolean_literal','parser.py',227),
+ ('expression -> TRUE','expression',1,'p_boolean_literal','parser.py',228),
+ ('expression -> DATE_LITERAL','expression',1,'p_date_literal','parser.py',233),
+ ('expression -> INTEGER_LITERAL','expression',1,'p_integer_literal','parser.py',238),
+ ('expression -> DECIMAL_LITERAL','expression',1,'p_decimal_literal','parser.py',243),
+ ('expression -> currency DECIMAL_LITERAL','expression',2,'p_money_literal','parser.py',248),
+ ('expression -> currency INTEGER_LITERAL','expression',2,'p_money_literal','parser.py',249),
+ ('expression -> STRING_LITERAL','expression',1,'p_string_literal','parser.py',255),
+ ('currency -> DOLLAR','currency',1,'p_currency','parser.py',261),
+ ('currency -> RUBLE','currency',1,'p_currency','parser.py',262),
+ ('type -> BOOLEAN','type',1,'p_boolean','parser.py',268),
+ ('type -> DECIMAL','type',1,'p_decimal','parser.py',273),
+ ('type -> STRING','type',1,'p_string','parser.py',278),
+ ('type -> DATE','type',1,'p_date','parser.py',283),
+ ('type -> MONEY','type',1,'p_money','parser.py',288),
+ ('type -> INTEGER','type',1,'p_integer','parser.py',293),
+ ('form -> FORM LEFT_BRACE','form',2,'p_form_label','parser.py',305),
+ ('form -> FORM IDENTIFIER LEFT_BRACE RIGHT_BRACE','form',4,'p_empty_form','parser.py',309),
+ ('statement -> IF condition LEFT_BRACE RIGHT_BRACE','statement',4,'p_empty_if','parser.py',313),
+ ('condition -> LEFT_BRACKET RIGHT_BRACKET','condition',2,'p_empty_condition','parser.py',317),
+]