Mercurial > hg > Members > nobuyasu > SampleSource
diff Bison-Flex/CALC/Bison-Flex/calc-parser.output @ 0:db40c85cad7a default tip
upload sample source
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 09 May 2011 03:11:59 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Bison-Flex/CALC/Bison-Flex/calc-parser.output Mon May 09 03:11:59 2011 +0900 @@ -0,0 +1,451 @@ +Grammar + + 0 $accept: unit "end of file" + + 1 unit: state + 2 | unit state + + 3 state: "identifier" '=' expr '\n' + 4 | "print" expr '\n' + 5 | "list" '\n' + + 6 expr: expr '-' expr + 7 | expr '+' expr + 8 | expr '*' expr + 9 | expr '/' expr + 10 | '-' expr + 11 | '(' expr ')' + 12 | "identifier" + 13 | "ival" + + +Terminals, with rules where they appear + +"end of file" (0) 0 +'\n' (10) 3 4 5 +'(' (40) 11 +')' (41) 11 +'*' (42) 8 +'+' (43) 7 +'-' (45) 6 10 +'/' (47) 9 +'=' (61) 3 +error (256) +"ival" (258) 13 +"identifier" (259) 3 12 +"print" (260) 4 +"list" (261) 5 +NEG (262) + + +Nonterminals, with rules where they appear + +$accept (16) + on left: 0 +unit (17) + on left: 1 2, on right: 0 2 +state (18) + on left: 3 4 5, on right: 1 2 +expr (19) + on left: 6 7 8 9 10 11 12 13, on right: 3 4 6 7 8 9 10 11 + + +state 0 + + 0 $accept: . unit "end of file" + 1 unit: . state + 2 | . unit state + 3 state: . "identifier" '=' expr '\n' + 4 | . "print" expr '\n' + 5 | . "list" '\n' + + "identifier" shift, and go to state 1 + "print" shift, and go to state 2 + "list" shift, and go to state 3 + + unit go to state 4 + state go to state 5 + + +state 1 + + 3 state: "identifier" . '=' expr '\n' + + '=' shift, and go to state 6 + + +state 2 + + 4 state: "print" . expr '\n' + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 10 | . '-' expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 11 + + +state 3 + + 5 state: "list" . '\n' + + '\n' shift, and go to state 12 + + +state 4 + + 0 $accept: unit . "end of file" + 2 unit: unit . state + 3 state: . "identifier" '=' expr '\n' + 4 | . "print" expr '\n' + 5 | . "list" '\n' + + "end of file" shift, and go to state 13 + "identifier" shift, and go to state 1 + "print" shift, and go to state 2 + "list" shift, and go to state 3 + + state go to state 14 + + +state 5 + + 1 unit: state . + + $default reduce using rule 1 (unit) + + +state 6 + + 3 state: "identifier" '=' . expr '\n' + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 10 | . '-' expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 15 + + +state 7 + + 13 expr: "ival" . + + $default reduce using rule 13 (expr) + + +state 8 + + 12 expr: "identifier" . + + $default reduce using rule 12 (expr) + + +state 9 + + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 10 | . '-' expr + 10 | '-' . expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 16 + + +state 10 + + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 10 | . '-' expr + 11 | . '(' expr ')' + 11 | '(' . expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 17 + + +state 11 + + 4 state: "print" expr . '\n' + 6 expr: expr . '-' expr + 7 | expr . '+' expr + 8 | expr . '*' expr + 9 | expr . '/' expr + + '+' shift, and go to state 18 + '-' shift, and go to state 19 + '*' shift, and go to state 20 + '/' shift, and go to state 21 + '\n' shift, and go to state 22 + + +state 12 + + 5 state: "list" '\n' . + + $default reduce using rule 5 (state) + + +state 13 + + 0 $accept: unit "end of file" . + + $default accept + + +state 14 + + 2 unit: unit state . + + $default reduce using rule 2 (unit) + + +state 15 + + 3 state: "identifier" '=' expr . '\n' + 6 expr: expr . '-' expr + 7 | expr . '+' expr + 8 | expr . '*' expr + 9 | expr . '/' expr + + '+' shift, and go to state 18 + '-' shift, and go to state 19 + '*' shift, and go to state 20 + '/' shift, and go to state 21 + '\n' shift, and go to state 23 + + +state 16 + + 6 expr: expr . '-' expr + 7 | expr . '+' expr + 8 | expr . '*' expr + 9 | expr . '/' expr + 10 | '-' expr . ['+', '-', '*', '/', '\n', ')'] + + $default reduce using rule 10 (expr) + + Conflict between rule 10 and token '+' resolved as reduce ('+' < NEG). + Conflict between rule 10 and token '-' resolved as reduce ('-' < NEG). + Conflict between rule 10 and token '*' resolved as reduce ('*' < NEG). + Conflict between rule 10 and token '/' resolved as reduce ('/' < NEG). + + +state 17 + + 6 expr: expr . '-' expr + 7 | expr . '+' expr + 8 | expr . '*' expr + 9 | expr . '/' expr + 11 | '(' expr . ')' + + '+' shift, and go to state 18 + '-' shift, and go to state 19 + '*' shift, and go to state 20 + '/' shift, and go to state 21 + ')' shift, and go to state 24 + + +state 18 + + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 7 | expr '+' . expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 10 | . '-' expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 25 + + +state 19 + + 6 expr: . expr '-' expr + 6 | expr '-' . expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 10 | . '-' expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 26 + + +state 20 + + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 8 | expr '*' . expr + 9 | . expr '/' expr + 10 | . '-' expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 27 + + +state 21 + + 6 expr: . expr '-' expr + 7 | . expr '+' expr + 8 | . expr '*' expr + 9 | . expr '/' expr + 9 | expr '/' . expr + 10 | . '-' expr + 11 | . '(' expr ')' + 12 | . "identifier" + 13 | . "ival" + + "ival" shift, and go to state 7 + "identifier" shift, and go to state 8 + '-' shift, and go to state 9 + '(' shift, and go to state 10 + + expr go to state 28 + + +state 22 + + 4 state: "print" expr '\n' . + + $default reduce using rule 4 (state) + + +state 23 + + 3 state: "identifier" '=' expr '\n' . + + $default reduce using rule 3 (state) + + +state 24 + + 11 expr: '(' expr ')' . + + $default reduce using rule 11 (expr) + + +state 25 + + 6 expr: expr . '-' expr + 7 | expr . '+' expr ['+', '-', '\n', ')'] + 7 | expr '+' expr . ['+', '-', '\n', ')'] + 8 | expr . '*' expr + 9 | expr . '/' expr + + '*' shift, and go to state 20 + '/' shift, and go to state 21 + + $default reduce using rule 7 (expr) + + Conflict between rule 7 and token '+' resolved as reduce (%left '+'). + Conflict between rule 7 and token '-' resolved as reduce (%left '-'). + Conflict between rule 7 and token '*' resolved as shift ('+' < '*'). + Conflict between rule 7 and token '/' resolved as shift ('+' < '/'). + + +state 26 + + 6 expr: expr . '-' expr ['+', '-', '\n', ')'] + 6 | expr '-' expr . ['+', '-', '\n', ')'] + 7 | expr . '+' expr + 8 | expr . '*' expr + 9 | expr . '/' expr + + '*' shift, and go to state 20 + '/' shift, and go to state 21 + + $default reduce using rule 6 (expr) + + Conflict between rule 6 and token '+' resolved as reduce (%left '+'). + Conflict between rule 6 and token '-' resolved as reduce (%left '-'). + Conflict between rule 6 and token '*' resolved as shift ('-' < '*'). + Conflict between rule 6 and token '/' resolved as shift ('-' < '/'). + + +state 27 + + 6 expr: expr . '-' expr + 7 | expr . '+' expr + 8 | expr . '*' expr ['+', '-', '*', '/', '\n', ')'] + 8 | expr '*' expr . ['+', '-', '*', '/', '\n', ')'] + 9 | expr . '/' expr + + $default reduce using rule 8 (expr) + + Conflict between rule 8 and token '+' resolved as reduce ('+' < '*'). + Conflict between rule 8 and token '-' resolved as reduce ('-' < '*'). + Conflict between rule 8 and token '*' resolved as reduce (%left '*'). + Conflict between rule 8 and token '/' resolved as reduce (%left '/'). + + +state 28 + + 6 expr: expr . '-' expr + 7 | expr . '+' expr + 8 | expr . '*' expr + 9 | expr . '/' expr ['+', '-', '*', '/', '\n', ')'] + 9 | expr '/' expr . ['+', '-', '*', '/', '\n', ')'] + + $default reduce using rule 9 (expr) + + Conflict between rule 9 and token '+' resolved as reduce ('+' < '/'). + Conflict between rule 9 and token '-' resolved as reduce ('-' < '/'). + Conflict between rule 9 and token '*' resolved as reduce (%left '*'). + Conflict between rule 9 and token '/' resolved as reduce (%left '/').