From d118dcd84476fa76c662e6e34ae3da4662abf02f Mon Sep 17 00:00:00 2001 From: KikooDX Date: Wed, 10 Jun 2020 17:38:39 +0200 Subject: [PATCH] [.gitignore] Added parser output --- .gitignore | 4 +- parser.out | 324 ---------------------------------------------------- parsetab.py | 38 ------ 3 files changed, 3 insertions(+), 363 deletions(-) delete mode 100644 parser.out delete mode 100644 parsetab.py diff --git a/.gitignore b/.gitignore index 13d1490..91be801 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +parser.out +parsetab.py + # ---> Python # Byte-compiled / optimized / DLL files __pycache__/ @@ -128,4 +131,3 @@ dmypy.json # Pyre type checker .pyre/ - diff --git a/parser.out b/parser.out deleted file mode 100644 index b02ba47..0000000 --- a/parser.out +++ /dev/null @@ -1,324 +0,0 @@ -Created by PLY version 3.11 (http://www.dabeaz.com/ply) - -Unused terminals: - - ASSIGN - And - COMMA - DIVIDEASSIGN - DO - ELSE - FOR - GETKEY - GOTO - ID - IF - IFEND - ISEQUAL - LBL - LCURBRA - LIST - LOCATE - LPWHILE - LSQRBRA - MAT - MINUSASSIGN - MODULO - MODULOASSIGN - NEWLINE - NEXT - NOT - OR - PLUSASSIGN - RCURBRA - RSQRBRA - STEP - STR - STRING - THEN - TIMESASSIGN - TO - WHILE - WHILEEND - -Grammar - -Rule 0 S' -> expression -Rule 1 expression -> expression PLUS term -Rule 2 expression -> expression MINUS term -Rule 3 expression -> term -Rule 4 term -> term TIMES factor -Rule 5 term -> term DIVIDE factor -Rule 6 term -> factor -Rule 7 factor -> NUMBER -Rule 8 factor -> LPAREN expression RPAREN - -Terminals, with rules where they appear - -ASSIGN : -And : -COMMA : -DIVIDE : 5 -DIVIDEASSIGN : -DO : -ELSE : -FOR : -GETKEY : -GOTO : -ID : -IF : -IFEND : -ISEQUAL : -LBL : -LCURBRA : -LIST : -LOCATE : -LPAREN : 8 -LPWHILE : -LSQRBRA : -MAT : -MINUS : 2 -MINUSASSIGN : -MODULO : -MODULOASSIGN : -NEWLINE : -NEXT : -NOT : -NUMBER : 7 -OR : -PLUS : 1 -PLUSASSIGN : -RCURBRA : -RPAREN : 8 -RSQRBRA : -STEP : -STR : -STRING : -THEN : -TIMES : 4 -TIMESASSIGN : -TO : -WHILE : -WHILEEND : -error : - -Nonterminals, with rules where they appear - -expression : 1 2 8 0 -factor : 4 5 6 -term : 1 2 3 4 5 - -Parsing method: LALR - -state 0 - - (0) S' -> . expression - (1) expression -> . expression PLUS term - (2) expression -> . expression MINUS term - (3) expression -> . term - (4) term -> . term TIMES factor - (5) term -> . term DIVIDE factor - (6) term -> . factor - (7) factor -> . NUMBER - (8) factor -> . LPAREN expression RPAREN - - NUMBER shift and go to state 4 - LPAREN shift and go to state 5 - - expression shift and go to state 1 - term shift and go to state 2 - factor shift and go to state 3 - -state 1 - - (0) S' -> expression . - (1) expression -> expression . PLUS term - (2) expression -> expression . MINUS term - - PLUS shift and go to state 6 - MINUS shift and go to state 7 - - -state 2 - - (3) expression -> term . - (4) term -> term . TIMES factor - (5) term -> term . DIVIDE factor - - PLUS reduce using rule 3 (expression -> term .) - MINUS reduce using rule 3 (expression -> term .) - $end reduce using rule 3 (expression -> term .) - RPAREN reduce using rule 3 (expression -> term .) - TIMES shift and go to state 8 - DIVIDE shift and go to state 9 - - -state 3 - - (6) term -> factor . - - TIMES reduce using rule 6 (term -> factor .) - DIVIDE reduce using rule 6 (term -> factor .) - PLUS reduce using rule 6 (term -> factor .) - MINUS reduce using rule 6 (term -> factor .) - $end reduce using rule 6 (term -> factor .) - RPAREN reduce using rule 6 (term -> factor .) - - -state 4 - - (7) factor -> NUMBER . - - TIMES reduce using rule 7 (factor -> NUMBER .) - DIVIDE reduce using rule 7 (factor -> NUMBER .) - PLUS reduce using rule 7 (factor -> NUMBER .) - MINUS reduce using rule 7 (factor -> NUMBER .) - $end reduce using rule 7 (factor -> NUMBER .) - RPAREN reduce using rule 7 (factor -> NUMBER .) - - -state 5 - - (8) factor -> LPAREN . expression RPAREN - (1) expression -> . expression PLUS term - (2) expression -> . expression MINUS term - (3) expression -> . term - (4) term -> . term TIMES factor - (5) term -> . term DIVIDE factor - (6) term -> . factor - (7) factor -> . NUMBER - (8) factor -> . LPAREN expression RPAREN - - NUMBER shift and go to state 4 - LPAREN shift and go to state 5 - - expression shift and go to state 10 - term shift and go to state 2 - factor shift and go to state 3 - -state 6 - - (1) expression -> expression PLUS . term - (4) term -> . term TIMES factor - (5) term -> . term DIVIDE factor - (6) term -> . factor - (7) factor -> . NUMBER - (8) factor -> . LPAREN expression RPAREN - - NUMBER shift and go to state 4 - LPAREN shift and go to state 5 - - term shift and go to state 11 - factor shift and go to state 3 - -state 7 - - (2) expression -> expression MINUS . term - (4) term -> . term TIMES factor - (5) term -> . term DIVIDE factor - (6) term -> . factor - (7) factor -> . NUMBER - (8) factor -> . LPAREN expression RPAREN - - NUMBER shift and go to state 4 - LPAREN shift and go to state 5 - - term shift and go to state 12 - factor shift and go to state 3 - -state 8 - - (4) term -> term TIMES . factor - (7) factor -> . NUMBER - (8) factor -> . LPAREN expression RPAREN - - NUMBER shift and go to state 4 - LPAREN shift and go to state 5 - - factor shift and go to state 13 - -state 9 - - (5) term -> term DIVIDE . factor - (7) factor -> . NUMBER - (8) factor -> . LPAREN expression RPAREN - - NUMBER shift and go to state 4 - LPAREN shift and go to state 5 - - factor shift and go to state 14 - -state 10 - - (8) factor -> LPAREN expression . RPAREN - (1) expression -> expression . PLUS term - (2) expression -> expression . MINUS term - - RPAREN shift and go to state 15 - PLUS shift and go to state 6 - MINUS shift and go to state 7 - - -state 11 - - (1) expression -> expression PLUS term . - (4) term -> term . TIMES factor - (5) term -> term . DIVIDE factor - - PLUS reduce using rule 1 (expression -> expression PLUS term .) - MINUS reduce using rule 1 (expression -> expression PLUS term .) - $end reduce using rule 1 (expression -> expression PLUS term .) - RPAREN reduce using rule 1 (expression -> expression PLUS term .) - TIMES shift and go to state 8 - DIVIDE shift and go to state 9 - - -state 12 - - (2) expression -> expression MINUS term . - (4) term -> term . TIMES factor - (5) term -> term . DIVIDE factor - - PLUS reduce using rule 2 (expression -> expression MINUS term .) - MINUS reduce using rule 2 (expression -> expression MINUS term .) - $end reduce using rule 2 (expression -> expression MINUS term .) - RPAREN reduce using rule 2 (expression -> expression MINUS term .) - TIMES shift and go to state 8 - DIVIDE shift and go to state 9 - - -state 13 - - (4) term -> term TIMES factor . - - TIMES reduce using rule 4 (term -> term TIMES factor .) - DIVIDE reduce using rule 4 (term -> term TIMES factor .) - PLUS reduce using rule 4 (term -> term TIMES factor .) - MINUS reduce using rule 4 (term -> term TIMES factor .) - $end reduce using rule 4 (term -> term TIMES factor .) - RPAREN reduce using rule 4 (term -> term TIMES factor .) - - -state 14 - - (5) term -> term DIVIDE factor . - - TIMES reduce using rule 5 (term -> term DIVIDE factor .) - DIVIDE reduce using rule 5 (term -> term DIVIDE factor .) - PLUS reduce using rule 5 (term -> term DIVIDE factor .) - MINUS reduce using rule 5 (term -> term DIVIDE factor .) - $end reduce using rule 5 (term -> term DIVIDE factor .) - RPAREN reduce using rule 5 (term -> term DIVIDE factor .) - - -state 15 - - (8) factor -> LPAREN expression RPAREN . - - TIMES reduce using rule 8 (factor -> LPAREN expression RPAREN .) - DIVIDE reduce using rule 8 (factor -> LPAREN expression RPAREN .) - PLUS reduce using rule 8 (factor -> LPAREN expression RPAREN .) - MINUS reduce using rule 8 (factor -> LPAREN expression RPAREN .) - $end reduce using rule 8 (factor -> LPAREN expression RPAREN .) - RPAREN reduce using rule 8 (factor -> LPAREN expression RPAREN .) - diff --git a/parsetab.py b/parsetab.py deleted file mode 100644 index c57f58f..0000000 --- a/parsetab.py +++ /dev/null @@ -1,38 +0,0 @@ - -# parsetab.py -# This file is automatically generated. Do not edit. -# pylint: disable=W,C,R -_tabversion = '3.10' - -_lr_method = 'LALR' - -_lr_signature = 'ASSIGN And COMMA DIVIDE DIVIDEASSIGN DO ELSE FOR GETKEY GOTO ID IF IFEND ISEQUAL LBL LCURBRA LIST LOCATE LPAREN LPWHILE LSQRBRA MAT MINUS MINUSASSIGN MODULO MODULOASSIGN NEWLINE NEXT NOT NUMBER OR PLUS PLUSASSIGN RCURBRA RPAREN RSQRBRA STEP STR STRING THEN TIMES TIMESASSIGN TO WHILE WHILEENDexpression : expression PLUS termexpression : expression MINUS termexpression : termterm : term TIMES factorterm : term DIVIDE factorterm : factorfactor : NUMBERfactor : LPAREN expression RPAREN' - -_lr_action_items = {'NUMBER':([0,5,6,7,8,9,],[4,4,4,4,4,4,]),'LPAREN':([0,5,6,7,8,9,],[5,5,5,5,5,5,]),'$end':([1,2,3,4,11,12,13,14,15,],[0,-3,-6,-7,-1,-2,-4,-5,-8,]),'PLUS':([1,2,3,4,10,11,12,13,14,15,],[6,-3,-6,-7,6,-1,-2,-4,-5,-8,]),'MINUS':([1,2,3,4,10,11,12,13,14,15,],[7,-3,-6,-7,7,-1,-2,-4,-5,-8,]),'RPAREN':([2,3,4,10,11,12,13,14,15,],[-3,-6,-7,15,-1,-2,-4,-5,-8,]),'TIMES':([2,3,4,11,12,13,14,15,],[8,-6,-7,8,8,-4,-5,-8,]),'DIVIDE':([2,3,4,11,12,13,14,15,],[9,-6,-7,9,9,-4,-5,-8,]),} - -_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 = {'expression':([0,5,],[1,10,]),'term':([0,5,6,7,],[2,2,11,12,]),'factor':([0,5,6,7,8,9,],[3,3,3,3,13,14,]),} - -_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' -> expression","S'",1,None,None,None), - ('expression -> expression PLUS term','expression',3,'p_expression_plus','parser.py',7), - ('expression -> expression MINUS term','expression',3,'p_expression_minus','parser.py',11), - ('expression -> term','expression',1,'p_expression_term','parser.py',15), - ('term -> term TIMES factor','term',3,'p_term_times','parser.py',19), - ('term -> term DIVIDE factor','term',3,'p_term_div','parser.py',23), - ('term -> factor','term',1,'p_term_factor','parser.py',27), - ('factor -> NUMBER','factor',1,'p_factor_num','parser.py',31), - ('factor -> LPAREN expression RPAREN','factor',3,'p_factor_expr','parser.py',35), -]