Added all token names

This commit is contained in:
Mariano Uvalle 2019-03-21 18:38:52 -06:00
parent fc1cff2d31
commit 5be6fab3b4
3 changed files with 53 additions and 5 deletions

View file

@ -6,6 +6,7 @@ Rule 0 S' -> phrase
Rule 1 phrase -> a QUE TAL Rule 1 phrase -> a QUE TAL
Rule 2 a -> HOLA COMA a Rule 2 a -> HOLA COMA a
Rule 3 a -> HOLA Rule 3 a -> HOLA
Rule 4 a -> <empty>
Terminals, with rules where they appear Terminals, with rules where they appear
@ -28,8 +29,10 @@ state 0
(1) phrase -> . a QUE TAL (1) phrase -> . a QUE TAL
(2) a -> . HOLA COMA a (2) a -> . HOLA COMA a
(3) a -> . HOLA (3) a -> . HOLA
(4) a -> .
HOLA shift and go to state 3 HOLA shift and go to state 3
QUE reduce using rule 4 (a -> .)
phrase shift and go to state 1 phrase shift and go to state 1
a shift and go to state 2 a shift and go to state 2
@ -68,8 +71,10 @@ state 5
(2) a -> HOLA COMA . a (2) a -> HOLA COMA . a
(2) a -> . HOLA COMA a (2) a -> . HOLA COMA a
(3) a -> . HOLA (3) a -> . HOLA
(4) a -> .
HOLA shift and go to state 3 HOLA shift and go to state 3
QUE reduce using rule 4 (a -> .)
a shift and go to state 7 a shift and go to state 7

View file

@ -6,9 +6,9 @@ _tabversion = '3.10'
_lr_method = 'LALR' _lr_method = 'LALR'
_lr_signature = 'COMA HOLA QUE TAL\n phrase : a QUE TAL\n \n a : HOLA COMA a\n | HOLA\n ' _lr_signature = 'COMA HOLA QUE TAL\n phrase : a QUE TAL\n \n a : HOLA COMA a\n | HOLA\n |\n '
_lr_action_items = {'HOLA':([0,5,],[3,3,]),'$end':([1,6,],[0,-1,]),'QUE':([2,3,7,],[4,-3,-2,]),'COMA':([3,],[5,]),'TAL':([4,],[6,]),} _lr_action_items = {'HOLA':([0,5,],[3,3,]),'QUE':([0,2,3,5,7,],[-4,4,-3,-4,-2,]),'$end':([1,6,],[0,-1,]),'COMA':([3,],[5,]),'TAL':([4,],[6,]),}
_lr_action = {} _lr_action = {}
for _k, _v in _lr_action_items.items(): for _k, _v in _lr_action_items.items():
@ -28,6 +28,7 @@ del _lr_goto_items
_lr_productions = [ _lr_productions = [
("S' -> phrase","S'",1,None,None,None), ("S' -> phrase","S'",1,None,None,None),
('phrase -> a QUE TAL','phrase',3,'p_phrase','hola.py',28), ('phrase -> a QUE TAL','phrase',3,'p_phrase','hola.py',28),
('a -> HOLA COMA a','a',3,'p_a','hola.py',34), ('a -> HOLA COMA a','a',3,'p_a','hola.py',35),
('a -> HOLA','a',1,'p_a','hola.py',35), ('a -> HOLA','a',1,'p_a','hola.py',36),
('a -> <empty>','a',0,'p_a','hola.py',37),
] ]

View file

@ -1,2 +1,44 @@
import ply.lex as lex import ply.lex as lex
import ply.yacc as yacc import ply.yacc as yacc
tokens = [
'program',
'id',
'end',
'doubleColon',
'coma',
'integer',
'real',
'openBra',
'closedBra',
'int',
'rea',
'subroutine',
'parens',
'openParen',
'closedParen',
'read',
'print',
'if',
'then',
'else',
'elif',
'do',
'swap',
'exit',
'string',
'plus',
'minus',
'mul',
'div',
'or',
'and',
'not',
'equals',
'doubleEquals',
'notEquals',
'less',
'more',
'lessEquals',
'moreEquals',
]