

Terminals which are not used:

   tNODECATALOG


State 11 contains 1 reduce/reduce conflict.
State 15 contains 2 reduce/reduce conflicts.
State 47 contains 4 reduce/reduce conflicts.
State 56 contains 1 reduce/reduce conflict.
State 64 contains 1 reduce/reduce conflict.
State 72 contains 1 reduce/reduce conflict.
State 81 contains 1 reduce/reduce conflict.
State 102 contains 11 reduce/reduce conflicts.
State 108 contains 9 reduce/reduce conflicts.
State 142 contains 9 reduce/reduce conflicts.

Grammar
rule 1    file -> vrmlHeader vrmlScene
rule 2    vrmlHeader -> tVRML
rule 3    vrmlScene -> statements
rule 4    statements -> statement
rule 5    statements -> statement statements
rule 6    statements -> error statements
rule 7    statements ->		/* empty */
rule 8    statement -> nodeStatement
rule 9    statement -> protoStatement
rule 10   statement -> routeStatement
rule 11   rootNodeStatement -> node
rule 12   rootNodeStatement -> tDEF nodeNameId node
rule 13   rootNodeStatement -> tNAME nodeNameId node
rule 14   nodeStatement -> rootNodeStatement
rule 15   nodeStatement -> tUSE nodeNameId
rule 16   nodeStatement -> tNULL
rule 17   protoStatement -> proto
rule 18   protoStatement -> externproto
rule 19   protoStatements -> protoStatement
rule 20   protoStatements -> protoStatement protoStatements
rule 21   protoStatements -> error protoStatements
rule 22   protoStatements ->		/* empty */
rule 23   proto -> protoInterface '{' protoBody '}'
rule 24   protoInterface -> tPROTO nodeTypeId '[' interfaceDeclarations ']'
rule 25   protoBody -> protoStatements rootNodeStatement statements
rule 26   interfaceDeclarations -> interfaceDeclaration
rule 27   interfaceDeclarations -> interfaceDeclaration interfaceDeclarations
rule 28   interfaceDeclarations -> error interfaceDeclarations
rule 29   interfaceDeclarations ->		/* empty */
rule 30   restrictedInterfaceDeclaration -> teventIn fieldType eventInId
rule 31   restrictedInterfaceDeclaration -> teventOut fieldType eventOutId
rule 32   restrictedInterfaceDeclaration -> tfield fieldTypeIdValueTriple
rule 33   interfaceDeclaration -> restrictedInterfaceDeclaration
rule 34   interfaceDeclaration -> texposedField fieldTypeIdValueTriple
rule 35   fieldTypeIdValueTriple -> tSFNODE fieldId sfnodeValue
rule 36   fieldTypeIdValueTriple -> tMFNODE fieldId mfnodeValue
rule 37   fieldTypeIdValueTriple -> tSIMPLEFIELD fieldId '['
rule 38   fieldTypeIdValueTriple -> tSIMPLEFIELD fieldId fieldValueAtom
rule 39   externproto -> tEXTERNPROTO nodeTypeId '[' externInterfaceDeclarations ']' URLList
rule 40   externInterfaceDeclarations -> externInterfaceDeclaration
rule 41   externInterfaceDeclarations -> externInterfaceDeclaration externInterfaceDeclarations
rule 42   externInterfaceDeclarations -> error externInterfaceDeclarations
rule 43   externInterfaceDeclarations ->		/* empty */
rule 44   externInterfaceDeclaration -> teventIn fieldType eventInId
rule 45   externInterfaceDeclaration -> teventOut fieldType eventOutId
rule 46   externInterfaceDeclaration -> tfield fieldType fieldId
rule 47   externInterfaceDeclaration -> texposedField fieldType fieldId
rule 48   routeStatement -> tROUTE nodeNameId '.' eventOutId tTO nodeNameId '.' eventInId
rule 49   URLList -> mfstringValue
rule 50   node -> scriptNodeTypeId '{' scriptBody '}'
rule 51   node -> otherNodeTypeId '{' nodeBody '}'
rule 52   scriptNodeTypeId -> tScript
rule 53   otherNodeTypeId -> nodeTypeId
rule 54   scriptBody -> scriptBodyElement
rule 55   scriptBody -> scriptBodyElement scriptBody
rule 56   scriptBody ->		/* empty */
rule 57   scriptBodyElement -> scriptInterfaceDeclaration
rule 58   scriptBodyElement -> nodeBodyElement
rule 59   scriptInterfaceDeclaration -> teventIn scriptEventInDeclaration
rule 60   scriptInterfaceDeclaration -> teventOut scriptEventOutDeclaration
rule 61   scriptInterfaceDeclaration -> tfield scriptFieldDeclaration
rule 62   scriptEventInDeclaration -> fieldType eventInId
rule 63   scriptEventInDeclaration -> fieldType eventInId tIS eventInId
rule 64   scriptEventOutDeclaration -> fieldType eventOutId
rule 65   scriptEventOutDeclaration -> fieldType eventOutId tIS eventOutId
rule 66   scriptFieldDeclaration -> fieldTypeIdValueTriple
rule 67   scriptFieldDeclaration -> tSFNODE fieldId tIS fieldId
rule 68   scriptFieldDeclaration -> tMFNODE fieldId tIS fieldId
rule 69   scriptFieldDeclaration -> tSIMPLEFIELD fieldId tIS fieldId
rule 70   nodeBody -> nodeBodyElement
rule 71   nodeBody -> nodeBodyElement nodeBody
rule 72   nodeBody -> error nodeBody
rule 73   nodeBody ->		/* empty */
rule 74   nodeBodyElement -> fieldIdValuePair
rule 75   nodeBodyElement -> Id tIS Id
rule 76   nodeBodyElement -> routeStatement
rule 77   nodeBodyElement -> protoStatement
rule 78   fieldIdValuePair -> fieldId fieldValueAtom
rule 79   fieldIdValuePair -> fieldId '[' fieldValueAtom
rule 80   fieldIdValuePair -> fieldId '[' ']'
rule 81   fieldIdValuePair -> fieldId sfnodeValue
rule 82   fieldIdValuePair -> fieldId mfnodeValue
rule 83   nodeNameId -> Id
rule 84   nodeTypeId -> Id
rule 85   nodeTypeId -> tScript
rule 86   fieldId -> Id
rule 87   eventInId -> Id
rule 88   eventOutId -> Id
rule 89   Id -> tID
rule 90   fieldType -> tSIMPLEFIELD
rule 91   fieldType -> tSFNODE
rule 92   fieldType -> tMFNODE
rule 93   fieldValueAtom -> tTRUE
rule 94   fieldValueAtom -> tFALSE
rule 95   fieldValueAtom -> tSTRING
rule 96   fieldValueAtom -> tFLOAT
rule 97   fieldValueAtom -> tINT
rule 98   fieldValueAtom -> tHEX
rule 99   mfnodeValue -> nodeStatement
rule 100  mfnodeValue -> '[' ']'
rule 101  mfnodeValue -> '[' nodeStatements ']'
rule 102  nodeStatements -> nodeStatement
rule 103  nodeStatements -> nodeStatements nodeStatement
rule 104  sfnodeValue -> nodeStatement
rule 105  sfnodeValue -> tNULL
rule 106  mfstringValue -> tSTRING
rule 107  mfstringValue -> '[' ']'
rule 108  mfstringValue -> '[' strings ']'
rule 109  strings -> tSTRING
rule 110  strings -> strings tSTRING

Terminals, with rules where they appear

$ (-1)
'.' (46) 48
'[' (91) 24 37 39 79 80 100 101 107 108
']' (93) 24 39 80 100 101 107 108
'{' (123) 23 50 51
'}' (125) 23 50 51
error (256) 6 21 28 42 72
tVRML (257) 2
tNODECATALOG (258)
tDEF (259) 12
tNAME (260) 13
tUSE (261) 15
tPROTO (262) 24
teventIn (263) 30 44 59
teventOut (264) 31 45 60
tfield (265) 32 46 61
texposedField (266) 34 47
tROUTE (267) 48
tTO (268) 48
tIS (269) 63 65 67 68 69 75
tEXTERNPROTO (270) 39
tTRUE (271) 93
tFALSE (272) 94
tNULL (273) 16 105
tScript (274) 52 85
tSIMPLEFIELD (275) 37 38 69 90
tSFNODE (276) 35 67 91
tMFNODE (277) 36 68 92
tID (278) 89
tSTRING (279) 95 106 109 110
tFLOAT (280) 96
tINT (281) 97
tHEX (282) 98

Nonterminals, with rules where they appear

file (34)
    on left: 1
vrmlHeader (35)
    on left: 2, on right: 1
vrmlScene (36)
    on left: 3, on right: 1
statements (37)
    on left: 4 5 6 7, on right: 3 5 6 25
statement (38)
    on left: 8 9 10, on right: 4 5
rootNodeStatement (39)
    on left: 11 12 13, on right: 14 25
nodeStatement (40)
    on left: 14 15 16, on right: 8 99 102 103 104
protoStatement (41)
    on left: 17 18, on right: 9 19 20 77
protoStatements (42)
    on left: 19 20 21 22, on right: 20 21 25
proto (43)
    on left: 23, on right: 17
protoInterface (44)
    on left: 24, on right: 23
protoBody (45)
    on left: 25, on right: 23
interfaceDeclarations (46)
    on left: 26 27 28 29, on right: 24 27 28
restrictedInterfaceDeclaration (47)
    on left: 30 31 32, on right: 33
interfaceDeclaration (48)
    on left: 33 34, on right: 26 27
fieldTypeIdValueTriple (49)
    on left: 35 36 37 38, on right: 32 34 66
externproto (50)
    on left: 39, on right: 18
externInterfaceDeclarations (51)
    on left: 40 41 42 43, on right: 39 41 42
externInterfaceDeclaration (52)
    on left: 44 45 46 47, on right: 40 41
routeStatement (53)
    on left: 48, on right: 10 76
URLList (54)
    on left: 49, on right: 39
node (55)
    on left: 50 51, on right: 11 12 13
scriptNodeTypeId (56)
    on left: 52, on right: 50
otherNodeTypeId (57)
    on left: 53, on right: 51
scriptBody (58)
    on left: 54 55 56, on right: 50 55
scriptBodyElement (59)
    on left: 57 58, on right: 54 55
scriptInterfaceDeclaration (60)
    on left: 59 60 61, on right: 57
scriptEventInDeclaration (61)
    on left: 62 63, on right: 59
scriptEventOutDeclaration (62)
    on left: 64 65, on right: 60
scriptFieldDeclaration (63)
    on left: 66 67 68 69, on right: 61
nodeBody (64)
    on left: 70 71 72 73, on right: 51 71 72
nodeBodyElement (65)
    on left: 74 75 76 77, on right: 58 70 71
fieldIdValuePair (66)
    on left: 78 79 80 81 82, on right: 74
nodeNameId (67)
    on left: 83, on right: 12 13 15 48
nodeTypeId (68)
    on left: 84 85, on right: 24 39 53
fieldId (69)
    on left: 86, on right: 35 36 37 38 46 47 67 68 69 78 79 80 81 82
eventInId (70)
    on left: 87, on right: 30 44 48 62 63
eventOutId (71)
    on left: 88, on right: 31 45 48 64 65
Id (72)
    on left: 89, on right: 75 83 84 86 87 88
fieldType (73)
    on left: 90 91 92, on right: 30 31 44 45 46 47 62 63 64 65
fieldValueAtom (74)
    on left: 93 94 95 96 97 98, on right: 38 78 79
mfnodeValue (75)
    on left: 99 100 101, on right: 36 82
nodeStatements (76)
    on left: 102 103, on right: 101 103
sfnodeValue (77)
    on left: 104 105, on right: 35 81
mfstringValue (78)
    on left: 106 107 108, on right: 49
strings (79)
    on left: 109 110, on right: 108 110


state 0

    tVRML	shift, and go to state 1

    file	go to state 188
    vrmlHeader	go to state 2



state 1

    vrmlHeader  ->  tVRML .   (rule 2)

    $default	reduce using rule 2 (vrmlHeader)



state 2

    file  ->  vrmlHeader . vrmlScene   (rule 1)

    error	shift, and go to state 3
    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    $   	reduce using rule 7 (statements)

    vrmlScene	go to state 13
    statements	go to state 14
    statement	go to state 15
    rootNodeStatement	go to state 16
    nodeStatement	go to state 17
    protoStatement	go to state 18
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 22
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 3

    statements  ->  error . statements   (rule 6)

    error	shift, and go to state 3
    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    $   	reduce using rule 7 (statements)
    '}' 	reduce using rule 7 (statements)

    statements	go to state 28
    statement	go to state 15
    rootNodeStatement	go to state 16
    nodeStatement	go to state 17
    protoStatement	go to state 18
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 22
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 4

    rootNodeStatement  ->  tDEF . nodeNameId node   (rule 12)

    tID 	shift, and go to state 12

    nodeNameId	go to state 29
    Id  	go to state 30



state 5

    rootNodeStatement  ->  tNAME . nodeNameId node   (rule 13)

    tID 	shift, and go to state 12

    nodeNameId	go to state 31
    Id  	go to state 30



state 6

    nodeStatement  ->  tUSE . nodeNameId   (rule 15)

    tID 	shift, and go to state 12

    nodeNameId	go to state 32
    Id  	go to state 30



state 7

    protoInterface  ->  tPROTO . nodeTypeId '[' interfaceDeclarations ']'   (rule 24)

    tScript	shift, and go to state 33
    tID 	shift, and go to state 12

    nodeTypeId	go to state 34
    Id  	go to state 27



state 8

    routeStatement  ->  tROUTE . nodeNameId '.' eventOutId tTO nodeNameId '.' eventInId   (rule 48)

    tID 	shift, and go to state 12

    nodeNameId	go to state 35
    Id  	go to state 30



state 9

    externproto  ->  tEXTERNPROTO . nodeTypeId '[' externInterfaceDeclarations ']' URLList   (rule 39)

    tScript	shift, and go to state 33
    tID 	shift, and go to state 12

    nodeTypeId	go to state 36
    Id  	go to state 27



state 10

    nodeStatement  ->  tNULL .   (rule 16)

    $default	reduce using rule 16 (nodeStatement)



state 11

    scriptNodeTypeId  ->  tScript .   (rule 52)
    nodeTypeId  ->  tScript .   (rule 85)

    '{' 	reduce using rule 52 (scriptNodeTypeId)
    '{' 	[reduce using rule 85 (nodeTypeId)]
    $default	reduce using rule 52 (scriptNodeTypeId)



state 12

    Id  ->  tID .   (rule 89)

    $default	reduce using rule 89 (Id)



state 13

    file  ->  vrmlHeader vrmlScene .   (rule 1)

    $default	reduce using rule 1 (file)



state 14

    vrmlScene  ->  statements .   (rule 3)

    $default	reduce using rule 3 (vrmlScene)



state 15

    statements  ->  statement .   (rule 4)
    statements  ->  statement . statements   (rule 5)

    error	shift, and go to state 3
    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    $   	reduce using rule 4 (statements)
    $   	[reduce using rule 7 (statements)]
    '}' 	reduce using rule 4 (statements)
    '}' 	[reduce using rule 7 (statements)]

    statements	go to state 37
    statement	go to state 15
    rootNodeStatement	go to state 16
    nodeStatement	go to state 17
    protoStatement	go to state 18
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 22
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 16

    nodeStatement  ->  rootNodeStatement .   (rule 14)

    $default	reduce using rule 14 (nodeStatement)



state 17

    statement  ->  nodeStatement .   (rule 8)

    $default	reduce using rule 8 (statement)



state 18

    statement  ->  protoStatement .   (rule 9)

    $default	reduce using rule 9 (statement)



state 19

    protoStatement  ->  proto .   (rule 17)

    $default	reduce using rule 17 (protoStatement)



state 20

    proto  ->  protoInterface . '{' protoBody '}'   (rule 23)

    '{' 	shift, and go to state 38



state 21

    protoStatement  ->  externproto .   (rule 18)

    $default	reduce using rule 18 (protoStatement)



state 22

    statement  ->  routeStatement .   (rule 10)

    $default	reduce using rule 10 (statement)



state 23

    rootNodeStatement  ->  node .   (rule 11)

    $default	reduce using rule 11 (rootNodeStatement)



state 24

    node  ->  scriptNodeTypeId . '{' scriptBody '}'   (rule 50)

    '{' 	shift, and go to state 39



state 25

    node  ->  otherNodeTypeId . '{' nodeBody '}'   (rule 51)

    '{' 	shift, and go to state 40



state 26

    otherNodeTypeId  ->  nodeTypeId .   (rule 53)

    $default	reduce using rule 53 (otherNodeTypeId)



state 27

    nodeTypeId  ->  Id .   (rule 84)

    $default	reduce using rule 84 (nodeTypeId)



state 28

    statements  ->  error statements .   (rule 6)

    $default	reduce using rule 6 (statements)



state 29

    rootNodeStatement  ->  tDEF nodeNameId . node   (rule 12)

    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    node	go to state 41
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 30

    nodeNameId  ->  Id .   (rule 83)

    $default	reduce using rule 83 (nodeNameId)



state 31

    rootNodeStatement  ->  tNAME nodeNameId . node   (rule 13)

    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    node	go to state 42
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 32

    nodeStatement  ->  tUSE nodeNameId .   (rule 15)

    $default	reduce using rule 15 (nodeStatement)



state 33

    nodeTypeId  ->  tScript .   (rule 85)

    $default	reduce using rule 85 (nodeTypeId)



state 34

    protoInterface  ->  tPROTO nodeTypeId . '[' interfaceDeclarations ']'   (rule 24)

    '[' 	shift, and go to state 43



state 35

    routeStatement  ->  tROUTE nodeNameId . '.' eventOutId tTO nodeNameId '.' eventInId   (rule 48)

    '.' 	shift, and go to state 44



state 36

    externproto  ->  tEXTERNPROTO nodeTypeId . '[' externInterfaceDeclarations ']' URLList   (rule 39)

    '[' 	shift, and go to state 45



state 37

    statements  ->  statement statements .   (rule 5)

    $default	reduce using rule 5 (statements)



state 38

    proto  ->  protoInterface '{' . protoBody '}'   (rule 23)

    error	shift, and go to state 46
    tPROTO	shift, and go to state 7
    tEXTERNPROTO	shift, and go to state 9

    tDEF	reduce using rule 22 (protoStatements)
    tNAME	reduce using rule 22 (protoStatements)
    tScript	reduce using rule 22 (protoStatements)
    tID 	reduce using rule 22 (protoStatements)

    protoStatement	go to state 47
    protoStatements	go to state 48
    proto	go to state 19
    protoInterface	go to state 20
    protoBody	go to state 49
    externproto	go to state 21



state 39

    node  ->  scriptNodeTypeId '{' . scriptBody '}'   (rule 50)

    tPROTO	shift, and go to state 7
    teventIn	shift, and go to state 50
    teventOut	shift, and go to state 51
    tfield	shift, and go to state 52
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tID 	shift, and go to state 12

    $default	reduce using rule 56 (scriptBody)

    protoStatement	go to state 53
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 54
    scriptBody	go to state 55
    scriptBodyElement	go to state 56
    scriptInterfaceDeclaration	go to state 57
    nodeBodyElement	go to state 58
    fieldIdValuePair	go to state 59
    fieldId	go to state 60
    Id  	go to state 61



state 40

    node  ->  otherNodeTypeId '{' . nodeBody '}'   (rule 51)

    error	shift, and go to state 62
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tID 	shift, and go to state 12

    '}' 	reduce using rule 73 (nodeBody)

    protoStatement	go to state 53
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 54
    nodeBody	go to state 63
    nodeBodyElement	go to state 64
    fieldIdValuePair	go to state 59
    fieldId	go to state 60
    Id  	go to state 61



state 41

    rootNodeStatement  ->  tDEF nodeNameId node .   (rule 12)

    $default	reduce using rule 12 (rootNodeStatement)



state 42

    rootNodeStatement  ->  tNAME nodeNameId node .   (rule 13)

    $default	reduce using rule 13 (rootNodeStatement)



state 43

    protoInterface  ->  tPROTO nodeTypeId '[' . interfaceDeclarations ']'   (rule 24)

    error	shift, and go to state 65
    teventIn	shift, and go to state 66
    teventOut	shift, and go to state 67
    tfield	shift, and go to state 68
    texposedField	shift, and go to state 69

    ']' 	reduce using rule 29 (interfaceDeclarations)

    interfaceDeclarations	go to state 70
    restrictedInterfaceDeclaration	go to state 71
    interfaceDeclaration	go to state 72



state 44

    routeStatement  ->  tROUTE nodeNameId '.' . eventOutId tTO nodeNameId '.' eventInId   (rule 48)

    tID 	shift, and go to state 12

    eventOutId	go to state 73
    Id  	go to state 74



state 45

    externproto  ->  tEXTERNPROTO nodeTypeId '[' . externInterfaceDeclarations ']' URLList   (rule 39)

    error	shift, and go to state 75
    teventIn	shift, and go to state 76
    teventOut	shift, and go to state 77
    tfield	shift, and go to state 78
    texposedField	shift, and go to state 79

    ']' 	reduce using rule 43 (externInterfaceDeclarations)

    externInterfaceDeclarations	go to state 80
    externInterfaceDeclaration	go to state 81



state 46

    protoStatements  ->  error . protoStatements   (rule 21)

    error	shift, and go to state 46
    tPROTO	shift, and go to state 7
    tEXTERNPROTO	shift, and go to state 9

    tDEF	reduce using rule 22 (protoStatements)
    tNAME	reduce using rule 22 (protoStatements)
    tScript	reduce using rule 22 (protoStatements)
    tID 	reduce using rule 22 (protoStatements)

    protoStatement	go to state 47
    protoStatements	go to state 82
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21



state 47

    protoStatements  ->  protoStatement .   (rule 19)
    protoStatements  ->  protoStatement . protoStatements   (rule 20)

    error	shift, and go to state 46
    tPROTO	shift, and go to state 7
    tEXTERNPROTO	shift, and go to state 9

    tDEF	reduce using rule 19 (protoStatements)
    tDEF	[reduce using rule 22 (protoStatements)]
    tNAME	reduce using rule 19 (protoStatements)
    tNAME	[reduce using rule 22 (protoStatements)]
    tScript	reduce using rule 19 (protoStatements)
    tScript	[reduce using rule 22 (protoStatements)]
    tID 	reduce using rule 19 (protoStatements)
    tID 	[reduce using rule 22 (protoStatements)]

    protoStatement	go to state 47
    protoStatements	go to state 83
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21



state 48

    protoBody  ->  protoStatements . rootNodeStatement statements   (rule 25)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    rootNodeStatement	go to state 84
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 49

    proto  ->  protoInterface '{' protoBody . '}'   (rule 23)

    '}' 	shift, and go to state 85



state 50

    scriptInterfaceDeclaration  ->  teventIn . scriptEventInDeclaration   (rule 59)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    scriptEventInDeclaration	go to state 89
    fieldType	go to state 90



state 51

    scriptInterfaceDeclaration  ->  teventOut . scriptEventOutDeclaration   (rule 60)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    scriptEventOutDeclaration	go to state 91
    fieldType	go to state 92



state 52

    scriptInterfaceDeclaration  ->  tfield . scriptFieldDeclaration   (rule 61)

    tSIMPLEFIELD	shift, and go to state 93
    tSFNODE	shift, and go to state 94
    tMFNODE	shift, and go to state 95

    fieldTypeIdValueTriple	go to state 96
    scriptFieldDeclaration	go to state 97



state 53

    nodeBodyElement  ->  protoStatement .   (rule 77)

    $default	reduce using rule 77 (nodeBodyElement)



state 54

    nodeBodyElement  ->  routeStatement .   (rule 76)

    $default	reduce using rule 76 (nodeBodyElement)



state 55

    node  ->  scriptNodeTypeId '{' scriptBody . '}'   (rule 50)

    '}' 	shift, and go to state 98



state 56

    scriptBody  ->  scriptBodyElement .   (rule 54)
    scriptBody  ->  scriptBodyElement . scriptBody   (rule 55)

    tPROTO	shift, and go to state 7
    teventIn	shift, and go to state 50
    teventOut	shift, and go to state 51
    tfield	shift, and go to state 52
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tID 	shift, and go to state 12

    '}' 	reduce using rule 54 (scriptBody)
    '}' 	[reduce using rule 56 (scriptBody)]
    $default	reduce using rule 54 (scriptBody)

    protoStatement	go to state 53
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 54
    scriptBody	go to state 99
    scriptBodyElement	go to state 56
    scriptInterfaceDeclaration	go to state 57
    nodeBodyElement	go to state 58
    fieldIdValuePair	go to state 59
    fieldId	go to state 60
    Id  	go to state 61



state 57

    scriptBodyElement  ->  scriptInterfaceDeclaration .   (rule 57)

    $default	reduce using rule 57 (scriptBodyElement)



state 58

    scriptBodyElement  ->  nodeBodyElement .   (rule 58)

    $default	reduce using rule 58 (scriptBodyElement)



state 59

    nodeBodyElement  ->  fieldIdValuePair .   (rule 74)

    $default	reduce using rule 74 (nodeBodyElement)



state 60

    fieldIdValuePair  ->  fieldId . fieldValueAtom   (rule 78)
    fieldIdValuePair  ->  fieldId . '[' fieldValueAtom   (rule 79)
    fieldIdValuePair  ->  fieldId . '[' ']'   (rule 80)
    fieldIdValuePair  ->  fieldId . sfnodeValue   (rule 81)
    fieldIdValuePair  ->  fieldId . mfnodeValue   (rule 82)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tTRUE	shift, and go to state 100
    tFALSE	shift, and go to state 101
    tNULL	shift, and go to state 102
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12
    tSTRING	shift, and go to state 103
    tFLOAT	shift, and go to state 104
    tINT	shift, and go to state 105
    tHEX	shift, and go to state 106
    '[' 	shift, and go to state 107

    rootNodeStatement	go to state 16
    nodeStatement	go to state 108
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    fieldValueAtom	go to state 109
    mfnodeValue	go to state 110
    sfnodeValue	go to state 111



state 61

    nodeBodyElement  ->  Id . tIS Id   (rule 75)
    fieldId  ->  Id .   (rule 86)

    tIS 	shift, and go to state 112

    $default	reduce using rule 86 (fieldId)



state 62

    nodeBody  ->  error . nodeBody   (rule 72)

    error	shift, and go to state 62
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tID 	shift, and go to state 12

    '}' 	reduce using rule 73 (nodeBody)

    protoStatement	go to state 53
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 54
    nodeBody	go to state 113
    nodeBodyElement	go to state 64
    fieldIdValuePair	go to state 59
    fieldId	go to state 60
    Id  	go to state 61



state 63

    node  ->  otherNodeTypeId '{' nodeBody . '}'   (rule 51)

    '}' 	shift, and go to state 114



state 64

    nodeBody  ->  nodeBodyElement .   (rule 70)
    nodeBody  ->  nodeBodyElement . nodeBody   (rule 71)

    error	shift, and go to state 62
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tID 	shift, and go to state 12

    '}' 	reduce using rule 70 (nodeBody)
    '}' 	[reduce using rule 73 (nodeBody)]

    protoStatement	go to state 53
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 54
    nodeBody	go to state 115
    nodeBodyElement	go to state 64
    fieldIdValuePair	go to state 59
    fieldId	go to state 60
    Id  	go to state 61



state 65

    interfaceDeclarations  ->  error . interfaceDeclarations   (rule 28)

    error	shift, and go to state 65
    teventIn	shift, and go to state 66
    teventOut	shift, and go to state 67
    tfield	shift, and go to state 68
    texposedField	shift, and go to state 69

    ']' 	reduce using rule 29 (interfaceDeclarations)

    interfaceDeclarations	go to state 116
    restrictedInterfaceDeclaration	go to state 71
    interfaceDeclaration	go to state 72



state 66

    restrictedInterfaceDeclaration  ->  teventIn . fieldType eventInId   (rule 30)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    fieldType	go to state 117



state 67

    restrictedInterfaceDeclaration  ->  teventOut . fieldType eventOutId   (rule 31)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    fieldType	go to state 118



state 68

    restrictedInterfaceDeclaration  ->  tfield . fieldTypeIdValueTriple   (rule 32)

    tSIMPLEFIELD	shift, and go to state 119
    tSFNODE	shift, and go to state 120
    tMFNODE	shift, and go to state 121

    fieldTypeIdValueTriple	go to state 122



state 69

    interfaceDeclaration  ->  texposedField . fieldTypeIdValueTriple   (rule 34)

    tSIMPLEFIELD	shift, and go to state 119
    tSFNODE	shift, and go to state 120
    tMFNODE	shift, and go to state 121

    fieldTypeIdValueTriple	go to state 123



state 70

    protoInterface  ->  tPROTO nodeTypeId '[' interfaceDeclarations . ']'   (rule 24)

    ']' 	shift, and go to state 124



state 71

    interfaceDeclaration  ->  restrictedInterfaceDeclaration .   (rule 33)

    $default	reduce using rule 33 (interfaceDeclaration)



state 72

    interfaceDeclarations  ->  interfaceDeclaration .   (rule 26)
    interfaceDeclarations  ->  interfaceDeclaration . interfaceDeclarations   (rule 27)

    error	shift, and go to state 65
    teventIn	shift, and go to state 66
    teventOut	shift, and go to state 67
    tfield	shift, and go to state 68
    texposedField	shift, and go to state 69

    ']' 	reduce using rule 26 (interfaceDeclarations)
    ']' 	[reduce using rule 29 (interfaceDeclarations)]

    interfaceDeclarations	go to state 125
    restrictedInterfaceDeclaration	go to state 71
    interfaceDeclaration	go to state 72



state 73

    routeStatement  ->  tROUTE nodeNameId '.' eventOutId . tTO nodeNameId '.' eventInId   (rule 48)

    tTO 	shift, and go to state 126



state 74

    eventOutId  ->  Id .   (rule 88)

    $default	reduce using rule 88 (eventOutId)



state 75

    externInterfaceDeclarations  ->  error . externInterfaceDeclarations   (rule 42)

    error	shift, and go to state 75
    teventIn	shift, and go to state 76
    teventOut	shift, and go to state 77
    tfield	shift, and go to state 78
    texposedField	shift, and go to state 79

    ']' 	reduce using rule 43 (externInterfaceDeclarations)

    externInterfaceDeclarations	go to state 127
    externInterfaceDeclaration	go to state 81



state 76

    externInterfaceDeclaration  ->  teventIn . fieldType eventInId   (rule 44)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    fieldType	go to state 128



state 77

    externInterfaceDeclaration  ->  teventOut . fieldType eventOutId   (rule 45)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    fieldType	go to state 129



state 78

    externInterfaceDeclaration  ->  tfield . fieldType fieldId   (rule 46)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    fieldType	go to state 130



state 79

    externInterfaceDeclaration  ->  texposedField . fieldType fieldId   (rule 47)

    tSIMPLEFIELD	shift, and go to state 86
    tSFNODE	shift, and go to state 87
    tMFNODE	shift, and go to state 88

    fieldType	go to state 131



state 80

    externproto  ->  tEXTERNPROTO nodeTypeId '[' externInterfaceDeclarations . ']' URLList   (rule 39)

    ']' 	shift, and go to state 132



state 81

    externInterfaceDeclarations  ->  externInterfaceDeclaration .   (rule 40)
    externInterfaceDeclarations  ->  externInterfaceDeclaration . externInterfaceDeclarations   (rule 41)

    error	shift, and go to state 75
    teventIn	shift, and go to state 76
    teventOut	shift, and go to state 77
    tfield	shift, and go to state 78
    texposedField	shift, and go to state 79

    ']' 	reduce using rule 40 (externInterfaceDeclarations)
    ']' 	[reduce using rule 43 (externInterfaceDeclarations)]

    externInterfaceDeclarations	go to state 133
    externInterfaceDeclaration	go to state 81



state 82

    protoStatements  ->  error protoStatements .   (rule 21)

    $default	reduce using rule 21 (protoStatements)



state 83

    protoStatements  ->  protoStatement protoStatements .   (rule 20)

    $default	reduce using rule 20 (protoStatements)



state 84

    protoBody  ->  protoStatements rootNodeStatement . statements   (rule 25)

    error	shift, and go to state 3
    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tPROTO	shift, and go to state 7
    tROUTE	shift, and go to state 8
    tEXTERNPROTO	shift, and go to state 9
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    '}' 	reduce using rule 7 (statements)

    statements	go to state 134
    statement	go to state 15
    rootNodeStatement	go to state 16
    nodeStatement	go to state 17
    protoStatement	go to state 18
    proto	go to state 19
    protoInterface	go to state 20
    externproto	go to state 21
    routeStatement	go to state 22
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 85

    proto  ->  protoInterface '{' protoBody '}' .   (rule 23)

    $default	reduce using rule 23 (proto)



state 86

    fieldType  ->  tSIMPLEFIELD .   (rule 90)

    $default	reduce using rule 90 (fieldType)



state 87

    fieldType  ->  tSFNODE .   (rule 91)

    $default	reduce using rule 91 (fieldType)



state 88

    fieldType  ->  tMFNODE .   (rule 92)

    $default	reduce using rule 92 (fieldType)



state 89

    scriptInterfaceDeclaration  ->  teventIn scriptEventInDeclaration .   (rule 59)

    $default	reduce using rule 59 (scriptInterfaceDeclaration)



state 90

    scriptEventInDeclaration  ->  fieldType . eventInId   (rule 62)
    scriptEventInDeclaration  ->  fieldType . eventInId tIS eventInId   (rule 63)

    tID 	shift, and go to state 12

    eventInId	go to state 135
    Id  	go to state 136



state 91

    scriptInterfaceDeclaration  ->  teventOut scriptEventOutDeclaration .   (rule 60)

    $default	reduce using rule 60 (scriptInterfaceDeclaration)



state 92

    scriptEventOutDeclaration  ->  fieldType . eventOutId   (rule 64)
    scriptEventOutDeclaration  ->  fieldType . eventOutId tIS eventOutId   (rule 65)

    tID 	shift, and go to state 12

    eventOutId	go to state 137
    Id  	go to state 74



state 93

    fieldTypeIdValueTriple  ->  tSIMPLEFIELD . fieldId '['   (rule 37)
    fieldTypeIdValueTriple  ->  tSIMPLEFIELD . fieldId fieldValueAtom   (rule 38)
    scriptFieldDeclaration  ->  tSIMPLEFIELD . fieldId tIS fieldId   (rule 69)

    tID 	shift, and go to state 12

    fieldId	go to state 138
    Id  	go to state 139



state 94

    fieldTypeIdValueTriple  ->  tSFNODE . fieldId sfnodeValue   (rule 35)
    scriptFieldDeclaration  ->  tSFNODE . fieldId tIS fieldId   (rule 67)

    tID 	shift, and go to state 12

    fieldId	go to state 140
    Id  	go to state 139



state 95

    fieldTypeIdValueTriple  ->  tMFNODE . fieldId mfnodeValue   (rule 36)
    scriptFieldDeclaration  ->  tMFNODE . fieldId tIS fieldId   (rule 68)

    tID 	shift, and go to state 12

    fieldId	go to state 141
    Id  	go to state 139



state 96

    scriptFieldDeclaration  ->  fieldTypeIdValueTriple .   (rule 66)

    $default	reduce using rule 66 (scriptFieldDeclaration)



state 97

    scriptInterfaceDeclaration  ->  tfield scriptFieldDeclaration .   (rule 61)

    $default	reduce using rule 61 (scriptInterfaceDeclaration)



state 98

    node  ->  scriptNodeTypeId '{' scriptBody '}' .   (rule 50)

    $default	reduce using rule 50 (node)



state 99

    scriptBody  ->  scriptBodyElement scriptBody .   (rule 55)

    $default	reduce using rule 55 (scriptBody)



state 100

    fieldValueAtom  ->  tTRUE .   (rule 93)

    $default	reduce using rule 93 (fieldValueAtom)



state 101

    fieldValueAtom  ->  tFALSE .   (rule 94)

    $default	reduce using rule 94 (fieldValueAtom)



state 102

    nodeStatement  ->  tNULL .   (rule 16)
    sfnodeValue  ->  tNULL .   (rule 105)

    error	reduce using rule 16 (nodeStatement)
    error	[reduce using rule 105 (sfnodeValue)]
    tPROTO	reduce using rule 16 (nodeStatement)
    tPROTO	[reduce using rule 105 (sfnodeValue)]
    teventIn	reduce using rule 16 (nodeStatement)
    teventIn	[reduce using rule 105 (sfnodeValue)]
    teventOut	reduce using rule 16 (nodeStatement)
    teventOut	[reduce using rule 105 (sfnodeValue)]
    tfield	reduce using rule 16 (nodeStatement)
    tfield	[reduce using rule 105 (sfnodeValue)]
    texposedField	reduce using rule 16 (nodeStatement)
    texposedField	[reduce using rule 105 (sfnodeValue)]
    tROUTE	reduce using rule 16 (nodeStatement)
    tROUTE	[reduce using rule 105 (sfnodeValue)]
    tEXTERNPROTO	reduce using rule 16 (nodeStatement)
    tEXTERNPROTO	[reduce using rule 105 (sfnodeValue)]
    tID 	reduce using rule 16 (nodeStatement)
    tID 	[reduce using rule 105 (sfnodeValue)]
    '}' 	reduce using rule 16 (nodeStatement)
    '}' 	[reduce using rule 105 (sfnodeValue)]
    ']' 	reduce using rule 16 (nodeStatement)
    ']' 	[reduce using rule 105 (sfnodeValue)]
    $default	reduce using rule 16 (nodeStatement)



state 103

    fieldValueAtom  ->  tSTRING .   (rule 95)

    $default	reduce using rule 95 (fieldValueAtom)



state 104

    fieldValueAtom  ->  tFLOAT .   (rule 96)

    $default	reduce using rule 96 (fieldValueAtom)



state 105

    fieldValueAtom  ->  tINT .   (rule 97)

    $default	reduce using rule 97 (fieldValueAtom)



state 106

    fieldValueAtom  ->  tHEX .   (rule 98)

    $default	reduce using rule 98 (fieldValueAtom)



state 107

    fieldIdValuePair  ->  fieldId '[' . fieldValueAtom   (rule 79)
    fieldIdValuePair  ->  fieldId '[' . ']'   (rule 80)
    mfnodeValue  ->  '[' . ']'   (rule 100)
    mfnodeValue  ->  '[' . nodeStatements ']'   (rule 101)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tTRUE	shift, and go to state 100
    tFALSE	shift, and go to state 101
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12
    tSTRING	shift, and go to state 103
    tFLOAT	shift, and go to state 104
    tINT	shift, and go to state 105
    tHEX	shift, and go to state 106
    ']' 	shift, and go to state 142

    rootNodeStatement	go to state 16
    nodeStatement	go to state 143
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    fieldValueAtom	go to state 144
    nodeStatements	go to state 145



state 108

    mfnodeValue  ->  nodeStatement .   (rule 99)
    sfnodeValue  ->  nodeStatement .   (rule 104)

    error	reduce using rule 99 (mfnodeValue)
    error	[reduce using rule 104 (sfnodeValue)]
    tPROTO	reduce using rule 99 (mfnodeValue)
    tPROTO	[reduce using rule 104 (sfnodeValue)]
    teventIn	reduce using rule 99 (mfnodeValue)
    teventIn	[reduce using rule 104 (sfnodeValue)]
    teventOut	reduce using rule 99 (mfnodeValue)
    teventOut	[reduce using rule 104 (sfnodeValue)]
    tfield	reduce using rule 99 (mfnodeValue)
    tfield	[reduce using rule 104 (sfnodeValue)]
    tROUTE	reduce using rule 99 (mfnodeValue)
    tROUTE	[reduce using rule 104 (sfnodeValue)]
    tEXTERNPROTO	reduce using rule 99 (mfnodeValue)
    tEXTERNPROTO	[reduce using rule 104 (sfnodeValue)]
    tID 	reduce using rule 99 (mfnodeValue)
    tID 	[reduce using rule 104 (sfnodeValue)]
    '}' 	reduce using rule 99 (mfnodeValue)
    '}' 	[reduce using rule 104 (sfnodeValue)]
    $default	reduce using rule 99 (mfnodeValue)



state 109

    fieldIdValuePair  ->  fieldId fieldValueAtom .   (rule 78)

    $default	reduce using rule 78 (fieldIdValuePair)



state 110

    fieldIdValuePair  ->  fieldId mfnodeValue .   (rule 82)

    $default	reduce using rule 82 (fieldIdValuePair)



state 111

    fieldIdValuePair  ->  fieldId sfnodeValue .   (rule 81)

    $default	reduce using rule 81 (fieldIdValuePair)



state 112

    nodeBodyElement  ->  Id tIS . Id   (rule 75)

    tID 	shift, and go to state 12

    Id  	go to state 146



state 113

    nodeBody  ->  error nodeBody .   (rule 72)

    $default	reduce using rule 72 (nodeBody)



state 114

    node  ->  otherNodeTypeId '{' nodeBody '}' .   (rule 51)

    $default	reduce using rule 51 (node)



state 115

    nodeBody  ->  nodeBodyElement nodeBody .   (rule 71)

    $default	reduce using rule 71 (nodeBody)



state 116

    interfaceDeclarations  ->  error interfaceDeclarations .   (rule 28)

    $default	reduce using rule 28 (interfaceDeclarations)



state 117

    restrictedInterfaceDeclaration  ->  teventIn fieldType . eventInId   (rule 30)

    tID 	shift, and go to state 12

    eventInId	go to state 147
    Id  	go to state 136



state 118

    restrictedInterfaceDeclaration  ->  teventOut fieldType . eventOutId   (rule 31)

    tID 	shift, and go to state 12

    eventOutId	go to state 148
    Id  	go to state 74



state 119

    fieldTypeIdValueTriple  ->  tSIMPLEFIELD . fieldId '['   (rule 37)
    fieldTypeIdValueTriple  ->  tSIMPLEFIELD . fieldId fieldValueAtom   (rule 38)

    tID 	shift, and go to state 12

    fieldId	go to state 149
    Id  	go to state 139



state 120

    fieldTypeIdValueTriple  ->  tSFNODE . fieldId sfnodeValue   (rule 35)

    tID 	shift, and go to state 12

    fieldId	go to state 150
    Id  	go to state 139



state 121

    fieldTypeIdValueTriple  ->  tMFNODE . fieldId mfnodeValue   (rule 36)

    tID 	shift, and go to state 12

    fieldId	go to state 151
    Id  	go to state 139



state 122

    restrictedInterfaceDeclaration  ->  tfield fieldTypeIdValueTriple .   (rule 32)

    $default	reduce using rule 32 (restrictedInterfaceDeclaration)



state 123

    interfaceDeclaration  ->  texposedField fieldTypeIdValueTriple .   (rule 34)

    $default	reduce using rule 34 (interfaceDeclaration)



state 124

    protoInterface  ->  tPROTO nodeTypeId '[' interfaceDeclarations ']' .   (rule 24)

    $default	reduce using rule 24 (protoInterface)



state 125

    interfaceDeclarations  ->  interfaceDeclaration interfaceDeclarations .   (rule 27)

    $default	reduce using rule 27 (interfaceDeclarations)



state 126

    routeStatement  ->  tROUTE nodeNameId '.' eventOutId tTO . nodeNameId '.' eventInId   (rule 48)

    tID 	shift, and go to state 12

    nodeNameId	go to state 152
    Id  	go to state 30



state 127

    externInterfaceDeclarations  ->  error externInterfaceDeclarations .   (rule 42)

    $default	reduce using rule 42 (externInterfaceDeclarations)



state 128

    externInterfaceDeclaration  ->  teventIn fieldType . eventInId   (rule 44)

    tID 	shift, and go to state 12

    eventInId	go to state 153
    Id  	go to state 136



state 129

    externInterfaceDeclaration  ->  teventOut fieldType . eventOutId   (rule 45)

    tID 	shift, and go to state 12

    eventOutId	go to state 154
    Id  	go to state 74



state 130

    externInterfaceDeclaration  ->  tfield fieldType . fieldId   (rule 46)

    tID 	shift, and go to state 12

    fieldId	go to state 155
    Id  	go to state 139



state 131

    externInterfaceDeclaration  ->  texposedField fieldType . fieldId   (rule 47)

    tID 	shift, and go to state 12

    fieldId	go to state 156
    Id  	go to state 139



state 132

    externproto  ->  tEXTERNPROTO nodeTypeId '[' externInterfaceDeclarations ']' . URLList   (rule 39)

    tSTRING	shift, and go to state 157
    '[' 	shift, and go to state 158

    URLList	go to state 159
    mfstringValue	go to state 160



state 133

    externInterfaceDeclarations  ->  externInterfaceDeclaration externInterfaceDeclarations .   (rule 41)

    $default	reduce using rule 41 (externInterfaceDeclarations)



state 134

    protoBody  ->  protoStatements rootNodeStatement statements .   (rule 25)

    $default	reduce using rule 25 (protoBody)



state 135

    scriptEventInDeclaration  ->  fieldType eventInId .   (rule 62)
    scriptEventInDeclaration  ->  fieldType eventInId . tIS eventInId   (rule 63)

    tIS 	shift, and go to state 161

    $default	reduce using rule 62 (scriptEventInDeclaration)



state 136

    eventInId  ->  Id .   (rule 87)

    $default	reduce using rule 87 (eventInId)



state 137

    scriptEventOutDeclaration  ->  fieldType eventOutId .   (rule 64)
    scriptEventOutDeclaration  ->  fieldType eventOutId . tIS eventOutId   (rule 65)

    tIS 	shift, and go to state 162

    $default	reduce using rule 64 (scriptEventOutDeclaration)



state 138

    fieldTypeIdValueTriple  ->  tSIMPLEFIELD fieldId . '['   (rule 37)
    fieldTypeIdValueTriple  ->  tSIMPLEFIELD fieldId . fieldValueAtom   (rule 38)
    scriptFieldDeclaration  ->  tSIMPLEFIELD fieldId . tIS fieldId   (rule 69)

    tIS 	shift, and go to state 163
    tTRUE	shift, and go to state 100
    tFALSE	shift, and go to state 101
    tSTRING	shift, and go to state 103
    tFLOAT	shift, and go to state 104
    tINT	shift, and go to state 105
    tHEX	shift, and go to state 106
    '[' 	shift, and go to state 164

    fieldValueAtom	go to state 165



state 139

    fieldId  ->  Id .   (rule 86)

    $default	reduce using rule 86 (fieldId)



state 140

    fieldTypeIdValueTriple  ->  tSFNODE fieldId . sfnodeValue   (rule 35)
    scriptFieldDeclaration  ->  tSFNODE fieldId . tIS fieldId   (rule 67)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tIS 	shift, and go to state 166
    tNULL	shift, and go to state 102
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    rootNodeStatement	go to state 16
    nodeStatement	go to state 167
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    sfnodeValue	go to state 168



state 141

    fieldTypeIdValueTriple  ->  tMFNODE fieldId . mfnodeValue   (rule 36)
    scriptFieldDeclaration  ->  tMFNODE fieldId . tIS fieldId   (rule 68)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tIS 	shift, and go to state 169
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12
    '[' 	shift, and go to state 170

    rootNodeStatement	go to state 16
    nodeStatement	go to state 171
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    mfnodeValue	go to state 172



state 142

    fieldIdValuePair  ->  fieldId '[' ']' .   (rule 80)
    mfnodeValue  ->  '[' ']' .   (rule 100)

    error	reduce using rule 80 (fieldIdValuePair)
    error	[reduce using rule 100 (mfnodeValue)]
    tPROTO	reduce using rule 80 (fieldIdValuePair)
    tPROTO	[reduce using rule 100 (mfnodeValue)]
    teventIn	reduce using rule 80 (fieldIdValuePair)
    teventIn	[reduce using rule 100 (mfnodeValue)]
    teventOut	reduce using rule 80 (fieldIdValuePair)
    teventOut	[reduce using rule 100 (mfnodeValue)]
    tfield	reduce using rule 80 (fieldIdValuePair)
    tfield	[reduce using rule 100 (mfnodeValue)]
    tROUTE	reduce using rule 80 (fieldIdValuePair)
    tROUTE	[reduce using rule 100 (mfnodeValue)]
    tEXTERNPROTO	reduce using rule 80 (fieldIdValuePair)
    tEXTERNPROTO	[reduce using rule 100 (mfnodeValue)]
    tID 	reduce using rule 80 (fieldIdValuePair)
    tID 	[reduce using rule 100 (mfnodeValue)]
    '}' 	reduce using rule 80 (fieldIdValuePair)
    '}' 	[reduce using rule 100 (mfnodeValue)]
    $default	reduce using rule 80 (fieldIdValuePair)



state 143

    nodeStatements  ->  nodeStatement .   (rule 102)

    $default	reduce using rule 102 (nodeStatements)



state 144

    fieldIdValuePair  ->  fieldId '[' fieldValueAtom .   (rule 79)

    $default	reduce using rule 79 (fieldIdValuePair)



state 145

    mfnodeValue  ->  '[' nodeStatements . ']'   (rule 101)
    nodeStatements  ->  nodeStatements . nodeStatement   (rule 103)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12
    ']' 	shift, and go to state 173

    rootNodeStatement	go to state 16
    nodeStatement	go to state 174
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27



state 146

    nodeBodyElement  ->  Id tIS Id .   (rule 75)

    $default	reduce using rule 75 (nodeBodyElement)



state 147

    restrictedInterfaceDeclaration  ->  teventIn fieldType eventInId .   (rule 30)

    $default	reduce using rule 30 (restrictedInterfaceDeclaration)



state 148

    restrictedInterfaceDeclaration  ->  teventOut fieldType eventOutId .   (rule 31)

    $default	reduce using rule 31 (restrictedInterfaceDeclaration)



state 149

    fieldTypeIdValueTriple  ->  tSIMPLEFIELD fieldId . '['   (rule 37)
    fieldTypeIdValueTriple  ->  tSIMPLEFIELD fieldId . fieldValueAtom   (rule 38)

    tTRUE	shift, and go to state 100
    tFALSE	shift, and go to state 101
    tSTRING	shift, and go to state 103
    tFLOAT	shift, and go to state 104
    tINT	shift, and go to state 105
    tHEX	shift, and go to state 106
    '[' 	shift, and go to state 164

    fieldValueAtom	go to state 165



state 150

    fieldTypeIdValueTriple  ->  tSFNODE fieldId . sfnodeValue   (rule 35)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tNULL	shift, and go to state 102
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12

    rootNodeStatement	go to state 16
    nodeStatement	go to state 167
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    sfnodeValue	go to state 168



state 151

    fieldTypeIdValueTriple  ->  tMFNODE fieldId . mfnodeValue   (rule 36)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12
    '[' 	shift, and go to state 170

    rootNodeStatement	go to state 16
    nodeStatement	go to state 171
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    mfnodeValue	go to state 172



state 152

    routeStatement  ->  tROUTE nodeNameId '.' eventOutId tTO nodeNameId . '.' eventInId   (rule 48)

    '.' 	shift, and go to state 175



state 153

    externInterfaceDeclaration  ->  teventIn fieldType eventInId .   (rule 44)

    $default	reduce using rule 44 (externInterfaceDeclaration)



state 154

    externInterfaceDeclaration  ->  teventOut fieldType eventOutId .   (rule 45)

    $default	reduce using rule 45 (externInterfaceDeclaration)



state 155

    externInterfaceDeclaration  ->  tfield fieldType fieldId .   (rule 46)

    $default	reduce using rule 46 (externInterfaceDeclaration)



state 156

    externInterfaceDeclaration  ->  texposedField fieldType fieldId .   (rule 47)

    $default	reduce using rule 47 (externInterfaceDeclaration)



state 157

    mfstringValue  ->  tSTRING .   (rule 106)

    $default	reduce using rule 106 (mfstringValue)



state 158

    mfstringValue  ->  '[' . ']'   (rule 107)
    mfstringValue  ->  '[' . strings ']'   (rule 108)

    tSTRING	shift, and go to state 176
    ']' 	shift, and go to state 177

    strings	go to state 178



state 159

    externproto  ->  tEXTERNPROTO nodeTypeId '[' externInterfaceDeclarations ']' URLList .   (rule 39)

    $default	reduce using rule 39 (externproto)



state 160

    URLList  ->  mfstringValue .   (rule 49)

    $default	reduce using rule 49 (URLList)



state 161

    scriptEventInDeclaration  ->  fieldType eventInId tIS . eventInId   (rule 63)

    tID 	shift, and go to state 12

    eventInId	go to state 179
    Id  	go to state 136



state 162

    scriptEventOutDeclaration  ->  fieldType eventOutId tIS . eventOutId   (rule 65)

    tID 	shift, and go to state 12

    eventOutId	go to state 180
    Id  	go to state 74



state 163

    scriptFieldDeclaration  ->  tSIMPLEFIELD fieldId tIS . fieldId   (rule 69)

    tID 	shift, and go to state 12

    fieldId	go to state 181
    Id  	go to state 139



state 164

    fieldTypeIdValueTriple  ->  tSIMPLEFIELD fieldId '[' .   (rule 37)

    $default	reduce using rule 37 (fieldTypeIdValueTriple)



state 165

    fieldTypeIdValueTriple  ->  tSIMPLEFIELD fieldId fieldValueAtom .   (rule 38)

    $default	reduce using rule 38 (fieldTypeIdValueTriple)



state 166

    scriptFieldDeclaration  ->  tSFNODE fieldId tIS . fieldId   (rule 67)

    tID 	shift, and go to state 12

    fieldId	go to state 182
    Id  	go to state 139



state 167

    sfnodeValue  ->  nodeStatement .   (rule 104)

    $default	reduce using rule 104 (sfnodeValue)



state 168

    fieldTypeIdValueTriple  ->  tSFNODE fieldId sfnodeValue .   (rule 35)

    $default	reduce using rule 35 (fieldTypeIdValueTriple)



state 169

    scriptFieldDeclaration  ->  tMFNODE fieldId tIS . fieldId   (rule 68)

    tID 	shift, and go to state 12

    fieldId	go to state 183
    Id  	go to state 139



state 170

    mfnodeValue  ->  '[' . ']'   (rule 100)
    mfnodeValue  ->  '[' . nodeStatements ']'   (rule 101)

    tDEF	shift, and go to state 4
    tNAME	shift, and go to state 5
    tUSE	shift, and go to state 6
    tNULL	shift, and go to state 10
    tScript	shift, and go to state 11
    tID 	shift, and go to state 12
    ']' 	shift, and go to state 184

    rootNodeStatement	go to state 16
    nodeStatement	go to state 143
    node	go to state 23
    scriptNodeTypeId	go to state 24
    otherNodeTypeId	go to state 25
    nodeTypeId	go to state 26
    Id  	go to state 27
    nodeStatements	go to state 145



state 171

    mfnodeValue  ->  nodeStatement .   (rule 99)

    $default	reduce using rule 99 (mfnodeValue)



state 172

    fieldTypeIdValueTriple  ->  tMFNODE fieldId mfnodeValue .   (rule 36)

    $default	reduce using rule 36 (fieldTypeIdValueTriple)



state 173

    mfnodeValue  ->  '[' nodeStatements ']' .   (rule 101)

    $default	reduce using rule 101 (mfnodeValue)



state 174

    nodeStatements  ->  nodeStatements nodeStatement .   (rule 103)

    $default	reduce using rule 103 (nodeStatements)



state 175

    routeStatement  ->  tROUTE nodeNameId '.' eventOutId tTO nodeNameId '.' . eventInId   (rule 48)

    tID 	shift, and go to state 12

    eventInId	go to state 185
    Id  	go to state 136



state 176

    strings  ->  tSTRING .   (rule 109)

    $default	reduce using rule 109 (strings)



state 177

    mfstringValue  ->  '[' ']' .   (rule 107)

    $default	reduce using rule 107 (mfstringValue)



state 178

    mfstringValue  ->  '[' strings . ']'   (rule 108)
    strings  ->  strings . tSTRING   (rule 110)

    tSTRING	shift, and go to state 186
    ']' 	shift, and go to state 187



state 179

    scriptEventInDeclaration  ->  fieldType eventInId tIS eventInId .   (rule 63)

    $default	reduce using rule 63 (scriptEventInDeclaration)



state 180

    scriptEventOutDeclaration  ->  fieldType eventOutId tIS eventOutId .   (rule 65)

    $default	reduce using rule 65 (scriptEventOutDeclaration)



state 181

    scriptFieldDeclaration  ->  tSIMPLEFIELD fieldId tIS fieldId .   (rule 69)

    $default	reduce using rule 69 (scriptFieldDeclaration)



state 182

    scriptFieldDeclaration  ->  tSFNODE fieldId tIS fieldId .   (rule 67)

    $default	reduce using rule 67 (scriptFieldDeclaration)



state 183

    scriptFieldDeclaration  ->  tMFNODE fieldId tIS fieldId .   (rule 68)

    $default	reduce using rule 68 (scriptFieldDeclaration)



state 184

    mfnodeValue  ->  '[' ']' .   (rule 100)

    $default	reduce using rule 100 (mfnodeValue)



state 185

    routeStatement  ->  tROUTE nodeNameId '.' eventOutId tTO nodeNameId '.' eventInId .   (rule 48)

    $default	reduce using rule 48 (routeStatement)



state 186

    strings  ->  strings tSTRING .   (rule 110)

    $default	reduce using rule 110 (strings)



state 187

    mfstringValue  ->  '[' strings ']' .   (rule 108)

    $default	reduce using rule 108 (mfstringValue)



state 188

    $   	go to state 189



state 189

    $   	go to state 190



state 190

    $default	accept
