
Grammar
rule 1    input -> var
rule 2    var -> LEX_ID LEX_ID
rule 3    var -> LEX_ID LEX_ID '(' params ')'
rule 4    id -> LEX_ID
rule 5    attr -> id
rule 6    attr -> LEX_ID '(' params ')'
rule 7    attr -> LEX_ID '[' idlist ']'
rule 8    idlist -> id
rule 9    idlist -> id ',' idlist
rule 10   params -> param
rule 11   params -> param ',' params
rule 12   param -> var
rule 13   param -> attr
rule 14   param -> LEX_ID '=' LEX_INT
rule 15   param -> LEX_ID '=' attr
rule 16   param -> LEX_ID '=' LEX_STRING

Terminals, with rules where they appear

$ (-1)
'('')'',''=''['']'errorLEX_INTLEX_IDLEX_STRING (260) 16

Nonterminals, with rules where they appear

input (12)
    on left: 1
var (13)
    on left: 2 3, on right: 1 12
id (14)
    on left: 4, on right: 5 8 9
attr (15)
    on left: 5 6 7, on right: 13 15
idlist (16)
    on left: 8 9, on right: 7 9
params (17)
    on left: 10 11, on right: 3 6 11
param (18)
    on left: 12 13 14 15 16, on right: 10 11


state 0

    LEX_ID	shift, and go to state 1

    input	go to state 29
    var 	go to state 2



state 1

    var  ->  LEX_ID . LEX_ID   (rule 2)
    var  ->  LEX_ID . LEX_ID '(' params ')'   (rule 3)

    LEX_ID	shift, and go to state 3



state 2

    input  ->  var .   (rule 1)

    $default	reduce using rule 1 (input)



state 3

    var  ->  LEX_ID LEX_ID .   (rule 2)
    var  ->  LEX_ID LEX_ID . '(' params ')'   (rule 3)

    '(' 	shift, and go to state 4

    $default	reduce using rule 2 (var)



state 4

    var  ->  LEX_ID LEX_ID '(' . params ')'   (rule 3)

    LEX_ID	shift, and go to state 5

    var 	go to state 6
    id  	go to state 7
    attr	go to state 8
    params	go to state 9
    param	go to state 10



state 5

    var  ->  LEX_ID . LEX_ID   (rule 2)
    var  ->  LEX_ID . LEX_ID '(' params ')'   (rule 3)
    id  ->  LEX_ID .   (rule 4)
    attr  ->  LEX_ID . '(' params ')'   (rule 6)
    attr  ->  LEX_ID . '[' idlist ']'   (rule 7)
    param  ->  LEX_ID . '=' LEX_INT   (rule 14)
    param  ->  LEX_ID . '=' attr   (rule 15)
    param  ->  LEX_ID . '=' LEX_STRING   (rule 16)

    LEX_ID	shift, and go to state 3
    '(' 	shift, and go to state 11
    '[' 	shift, and go to state 12
    '=' 	shift, and go to state 13

    $default	reduce using rule 4 (id)



state 6

    param  ->  var .   (rule 12)

    $default	reduce using rule 12 (param)



state 7

    attr  ->  id .   (rule 5)

    $default	reduce using rule 5 (attr)



state 8

    param  ->  attr .   (rule 13)

    $default	reduce using rule 13 (param)



state 9

    var  ->  LEX_ID LEX_ID '(' params . ')'   (rule 3)

    ')' 	shift, and go to state 14



state 10

    params  ->  param .   (rule 10)
    params  ->  param . ',' params   (rule 11)

    ',' 	shift, and go to state 15

    $default	reduce using rule 10 (params)



state 11

    attr  ->  LEX_ID '(' . params ')'   (rule 6)

    LEX_ID	shift, and go to state 5

    var 	go to state 6
    id  	go to state 7
    attr	go to state 8
    params	go to state 16
    param	go to state 10



state 12

    attr  ->  LEX_ID '[' . idlist ']'   (rule 7)

    LEX_ID	shift, and go to state 17

    id  	go to state 18
    idlist	go to state 19



state 13

    param  ->  LEX_ID '=' . LEX_INT   (rule 14)
    param  ->  LEX_ID '=' . attr   (rule 15)
    param  ->  LEX_ID '=' . LEX_STRING   (rule 16)

    LEX_INT	shift, and go to state 20
    LEX_ID	shift, and go to state 21
    LEX_STRING	shift, and go to state 22

    id  	go to state 7
    attr	go to state 23



state 14

    var  ->  LEX_ID LEX_ID '(' params ')' .   (rule 3)

    $default	reduce using rule 3 (var)



state 15

    params  ->  param ',' . params   (rule 11)

    LEX_ID	shift, and go to state 5

    var 	go to state 6
    id  	go to state 7
    attr	go to state 8
    params	go to state 24
    param	go to state 10



state 16

    attr  ->  LEX_ID '(' params . ')'   (rule 6)

    ')' 	shift, and go to state 25



state 17

    id  ->  LEX_ID .   (rule 4)

    $default	reduce using rule 4 (id)



state 18

    idlist  ->  id .   (rule 8)
    idlist  ->  id . ',' idlist   (rule 9)

    ',' 	shift, and go to state 26

    $default	reduce using rule 8 (idlist)



state 19

    attr  ->  LEX_ID '[' idlist . ']'   (rule 7)

    ']' 	shift, and go to state 27



state 20

    param  ->  LEX_ID '=' LEX_INT .   (rule 14)

    $default	reduce using rule 14 (param)



state 21

    id  ->  LEX_ID .   (rule 4)
    attr  ->  LEX_ID . '(' params ')'   (rule 6)
    attr  ->  LEX_ID . '[' idlist ']'   (rule 7)

    '(' 	shift, and go to state 11
    '[' 	shift, and go to state 12

    $default	reduce using rule 4 (id)



state 22

    param  ->  LEX_ID '=' LEX_STRING .   (rule 16)

    $default	reduce using rule 16 (param)



state 23

    param  ->  LEX_ID '=' attr .   (rule 15)

    $default	reduce using rule 15 (param)



state 24

    params  ->  param ',' params .   (rule 11)

    $default	reduce using rule 11 (params)



state 25

    attr  ->  LEX_ID '(' params ')' .   (rule 6)

    $default	reduce using rule 6 (attr)



state 26

    idlist  ->  id ',' . idlist   (rule 9)

    LEX_ID	shift, and go to state 17

    id  	go to state 18
    idlist	go to state 28



state 27

    attr  ->  LEX_ID '[' idlist ']' .   (rule 7)

    $default	reduce using rule 7 (attr)



state 28

    idlist  ->  id ',' idlist .   (rule 9)

    $default	reduce using rule 9 (idlist)



state 29

    $   	go to state 30



state 30

    $   	go to state 31



state 31

    $default	accept
