Skip to content
Snippets Groups Projects
parser.output 4.93 KiB
Newer Older
  • Learn to ignore specific revisions
  • Grammar
    
        0 $accept: unit "end of file"
    
        1 unit: assignments exp
    
        2 assignments: %empty
        3            | assignments assignment
    
        4 assignment: "identifier" ":=" exp
    
        5 exp: "number"
        6    | "identifier"
        7    | exp "+" exp
        8    | exp "-" exp
        9    | exp "*" exp
       10    | exp "/" exp
       11    | "(" exp ")"
    
    
    Terminals, with rules where they appear
    
        "end of file" (0) 0
        error (256)
        ":=" (258) 4
        "-" (259) 8
        "+" (260) 7
        "*" (261) 9
        "/" (262) 10
        "(" (263) 11
        ")" (264) 11
        "identifier" <std::string> (265) 4 6
        "number" <int> (266) 5
    
    
    Nonterminals, with rules where they appear
    
        $accept (12)
            on left: 0
        exp <int> (13)
            on left: 5 6 7 8 9 10 11
            on right: 1 4 7 8 9 10 11
        unit (14)
            on left: 1
            on right: 0
        assignments (15)
            on left: 2 3
            on right: 1 3
        assignment (16)
            on left: 4
            on right: 3
    
    
    State 0
    
        0 $accept: . unit "end of file"
    
        $default  reduce using rule 2 (assignments)
    
        unit         go to state 1
        assignments  go to state 2
    
    
    State 1
    
        0 $accept: unit . "end of file"
    
        "end of file"  shift, and go to state 3
    
    
    State 2
    
        1 unit: assignments . exp
        3 assignments: assignments . assignment
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 5
        "number"      shift, and go to state 6
    
        exp         go to state 7
        assignment  go to state 8
    
    
    State 3
    
        0 $accept: unit "end of file" .
    
        $default  accept
    
    
    State 4
    
       11 exp: "(" . exp ")"
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 9
        "number"      shift, and go to state 6
    
        exp  go to state 10
    
    
    State 5
    
        4 assignment: "identifier" . ":=" exp
        6 exp: "identifier" .
    
        ":="  shift, and go to state 11
    
        $default  reduce using rule 6 (exp)
    
    
    State 6
    
        5 exp: "number" .
    
        $default  reduce using rule 5 (exp)
    
    
    State 7
    
        1 unit: assignments exp .
        7 exp: exp . "+" exp
        8    | exp . "-" exp
        9    | exp . "*" exp
       10    | exp . "/" exp
    
        "-"  shift, and go to state 12
        "+"  shift, and go to state 13
        "*"  shift, and go to state 14
        "/"  shift, and go to state 15
    
        $default  reduce using rule 1 (unit)
    
    
    State 8
    
        3 assignments: assignments assignment .
    
        $default  reduce using rule 3 (assignments)
    
    
    State 9
    
        6 exp: "identifier" .
    
        $default  reduce using rule 6 (exp)
    
    
    State 10
    
        7 exp: exp . "+" exp
        8    | exp . "-" exp
        9    | exp . "*" exp
       10    | exp . "/" exp
       11    | "(" exp . ")"
    
        "-"  shift, and go to state 12
        "+"  shift, and go to state 13
        "*"  shift, and go to state 14
        "/"  shift, and go to state 15
        ")"  shift, and go to state 16
    
    
    State 11
    
        4 assignment: "identifier" ":=" . exp
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 9
        "number"      shift, and go to state 6
    
        exp  go to state 17
    
    
    State 12
    
        8 exp: exp "-" . exp
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 9
        "number"      shift, and go to state 6
    
        exp  go to state 18
    
    
    State 13
    
        7 exp: exp "+" . exp
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 9
        "number"      shift, and go to state 6
    
        exp  go to state 19
    
    
    State 14
    
        9 exp: exp "*" . exp
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 9
        "number"      shift, and go to state 6
    
        exp  go to state 20
    
    
    State 15
    
       10 exp: exp "/" . exp
    
        "("           shift, and go to state 4
        "identifier"  shift, and go to state 9
        "number"      shift, and go to state 6
    
        exp  go to state 21
    
    
    State 16
    
       11 exp: "(" exp ")" .
    
        $default  reduce using rule 11 (exp)
    
    
    State 17
    
        4 assignment: "identifier" ":=" exp .
        7 exp: exp . "+" exp
        8    | exp . "-" exp
        9    | exp . "*" exp
       10    | exp . "/" exp
    
        "-"  shift, and go to state 12
        "+"  shift, and go to state 13
        "*"  shift, and go to state 14
        "/"  shift, and go to state 15
    
        $default  reduce using rule 4 (assignment)
    
    
    State 18
    
        7 exp: exp . "+" exp
        8    | exp . "-" exp
        8    | exp "-" exp .
        9    | exp . "*" exp
       10    | exp . "/" exp
    
        "*"  shift, and go to state 14
        "/"  shift, and go to state 15
    
        $default  reduce using rule 8 (exp)
    
    
    State 19
    
        7 exp: exp . "+" exp
        7    | exp "+" exp .
        8    | exp . "-" exp
        9    | exp . "*" exp
       10    | exp . "/" exp
    
        "*"  shift, and go to state 14
        "/"  shift, and go to state 15
    
        $default  reduce using rule 7 (exp)
    
    
    State 20
    
        7 exp: exp . "+" exp
        8    | exp . "-" exp
        9    | exp . "*" exp
        9    | exp "*" exp .
       10    | exp . "/" exp
    
        $default  reduce using rule 9 (exp)
    
    
    State 21
    
        7 exp: exp . "+" exp
        8    | exp . "-" exp
        9    | exp . "*" exp
       10    | exp . "/" exp
       10    | exp "/" exp .
    
        $default  reduce using rule 10 (exp)