Added all token names
This commit is contained in:
parent
fc1cff2d31
commit
5be6fab3b4
3 changed files with 53 additions and 5 deletions
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -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',
|
||||||
|
]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue