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 '/').