Generated machine for ParserJACC
// Output created by jacc on Wed May 20 11:32:20 BRT 2015
state 0 (entry on s)
$accept : _s $end
ID shift 4
IF shift 5
READ shift 6
REPEAT shift 7
WRITE shift 8
. error
s goto 1
cmds goto 2
cmd goto 3
state 1 (entry on s)
$accept : s_$end
$end accept
. error
state 2 (entry on cmds)
s : cmds_ (1)
cmds : cmds_';' cmd (2)
';' shift 9
$end reduce 1
. error
state 3 (entry on cmd)
cmds : cmd_ (3)
END reduce 3
$end reduce 3
UNTIL reduce 3
';' reduce 3
ELSE reduce 3
. error
state 4 (entry on ID)
cmd : ID_ATTRIB exp (7)
ATTRIB shift 10
. error
state 5 (entry on IF)
cmd : IF_exp THEN cmds END (4)
cmd : IF_exp THEN cmds ELSE cmds END (5)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 11
state 6 (entry on READ)
cmd : READ_ID (9)
ID shift 15
. error
state 7 (entry on REPEAT)
cmd : REPEAT_cmds UNTIL exp (6)
ID shift 4
IF shift 5
READ shift 6
REPEAT shift 7
WRITE shift 8
. error
cmds goto 16
cmd goto 3
state 8 (entry on WRITE)
cmd : WRITE_exp (8)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 17
state 9 (entry on ';')
cmds : cmds ';'_cmd (2)
ID shift 4
IF shift 5
READ shift 6
REPEAT shift 7
WRITE shift 8
. error
cmd goto 18
state 10 (entry on ATTRIB)
cmd : ID ATTRIB_exp (7)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 19
state 11 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
cmd : IF exp_THEN cmds END (4)
cmd : IF exp_THEN cmds ELSE cmds END (5)
THEN shift 20
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
'<' shift 25
'=' shift 26
. error
state 12 (entry on ID)
exp : ID_ (18)
'(' error
REPEAT error
WRITE error
READ error
NUM error
error error
ATTRIB error
IF error
ID error
. reduce 18
state 13 (entry on NUM)
exp : NUM_ (17)
'(' error
REPEAT error
WRITE error
READ error
NUM error
error error
ATTRIB error
IF error
ID error
. reduce 17
state 14 (entry on '(')
exp : '('_exp ')' (16)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 27
state 15 (entry on ID)
cmd : READ ID_ (9)
END reduce 9
$end reduce 9
UNTIL reduce 9
';' reduce 9
ELSE reduce 9
. error
state 16 (entry on cmds)
cmds : cmds_';' cmd (2)
cmd : REPEAT cmds_UNTIL exp (6)
';' shift 9
UNTIL shift 28
. error
state 17 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
cmd : WRITE exp_ (8)
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
'<' shift 25
'=' shift 26
END reduce 8
$end reduce 8
UNTIL reduce 8
';' reduce 8
ELSE reduce 8
. error
state 18 (entry on cmd)
cmds : cmds ';' cmd_ (2)
END reduce 2
$end reduce 2
UNTIL reduce 2
';' reduce 2
ELSE reduce 2
. error
state 19 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
cmd : ID ATTRIB exp_ (7)
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
'<' shift 25
'=' shift 26
END reduce 7
$end reduce 7
UNTIL reduce 7
';' reduce 7
ELSE reduce 7
. error
state 20 (entry on THEN)
cmd : IF exp THEN_cmds END (4)
cmd : IF exp THEN_cmds ELSE cmds END (5)
ID shift 4
IF shift 5
READ shift 6
REPEAT shift 7
WRITE shift 8
. error
cmds goto 29
cmd goto 3
state 21 (entry on '*')
exp : exp '*'_exp (13)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 30
state 22 (entry on '+')
exp : exp '+'_exp (12)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 31
state 23 (entry on '-')
exp : exp '-'_exp (14)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 32
state 24 (entry on '/')
exp : exp '/'_exp (15)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 33
state 25 (entry on '<')
exp : exp '<'_exp (10)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 34
state 26 (entry on '=')
exp : exp '='_exp (11)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 35
state 27 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
exp : '(' exp_')' (16)
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
'<' shift 25
'=' shift 26
')' shift 36
. error
state 28 (entry on UNTIL)
cmd : REPEAT cmds UNTIL_exp (6)
ID shift 12
NUM shift 13
'(' shift 14
. error
exp goto 37
state 29 (entry on cmds)
cmds : cmds_';' cmd (2)
cmd : IF exp THEN cmds_END (4)
cmd : IF exp THEN cmds_ELSE cmds END (5)
';' shift 9
ELSE shift 38
END shift 39
. error
state 30 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp '*' exp_ (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
'(' error
REPEAT error
WRITE error
READ error
NUM error
error error
ATTRIB error
IF error
ID error
. reduce 13
state 31 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp '+' exp_ (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
ID error
'(' error
error error
REPEAT error
NUM error
READ error
ATTRIB error
WRITE error
IF error
'*' shift 21
'/' shift 24
. reduce 12
state 32 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp '-' exp_ (14)
exp : exp_'/' exp (15)
ID error
'(' error
error error
REPEAT error
NUM error
READ error
ATTRIB error
WRITE error
IF error
'*' shift 21
'/' shift 24
. reduce 14
state 33 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
exp : exp '/' exp_ (15)
'(' error
REPEAT error
WRITE error
READ error
NUM error
error error
ATTRIB error
IF error
ID error
. reduce 15
state 34 (entry on exp)
exp : exp_'<' exp (10)
exp : exp '<' exp_ (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
')' reduce 10
END reduce 10
$end reduce 10
'<' reduce 10
UNTIL reduce 10
';' reduce 10
'=' reduce 10
THEN reduce 10
ELSE reduce 10
. error
state 35 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp '=' exp_ (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
'<' shift 25
')' reduce 11
END reduce 11
$end reduce 11
'=' reduce 11
UNTIL reduce 11
';' reduce 11
THEN reduce 11
ELSE reduce 11
. error
state 36 (entry on ')')
exp : '(' exp ')'_ (16)
'(' error
REPEAT error
WRITE error
READ error
NUM error
error error
ATTRIB error
IF error
ID error
. reduce 16
state 37 (entry on exp)
exp : exp_'<' exp (10)
exp : exp_'=' exp (11)
exp : exp_'+' exp (12)
exp : exp_'*' exp (13)
exp : exp_'-' exp (14)
exp : exp_'/' exp (15)
cmd : REPEAT cmds UNTIL exp_ (6)
'*' shift 21
'+' shift 22
'-' shift 23
'/' shift 24
'<' shift 25
'=' shift 26
END reduce 6
$end reduce 6
UNTIL reduce 6
';' reduce 6
ELSE reduce 6
. error
state 38 (entry on ELSE)
cmd : IF exp THEN cmds ELSE_cmds END (5)
ID shift 4
IF shift 5
READ shift 6
REPEAT shift 7
WRITE shift 8
. error
cmds goto 40
cmd goto 3
state 39 (entry on END)
cmd : IF exp THEN cmds END_ (4)
END reduce 4
$end reduce 4
UNTIL reduce 4
';' reduce 4
ELSE reduce 4
. error
state 40 (entry on cmds)
cmds : cmds_';' cmd (2)
cmd : IF exp THEN cmds ELSE cmds_END (5)
';' shift 9
END shift 41
. error
state 41 (entry on END)
cmd : IF exp THEN cmds ELSE cmds END_ (5)
END reduce 5
$end reduce 5
UNTIL reduce 5
';' reduce 5
ELSE reduce 5
. error
22 terminals, 4 nonterminals;
18 grammar rules, 42 states;
0 shift/reduce and 0 reduce/reduce conflicts reported.