This grammar is LALR(2)
Number of Rules 140
Number of Terminals 64
Number of Lr0 States88
Number of La States1
Accept ::= document
1: document ::= prolog element misc*
2: prolog ::= xmlDecl? misc* (doctypedecl misc*)?
3: element ::= sTag
11: misc ::= (comment|pi)
12: xmlDecl ::= byteOrderMark? xmlPrefix versionInfo encodingDecl? sdDecl? '?>'
18: xmlPrefix ::= utf16LEPrefix
19: xmlPrefix ::= utf32BEPrefix
20: xmlPrefix ::= utf32LEPrefix
22: xmlPrefix ::= utf16BEPrefix
23: versionInfo ::= 'version' eq versionNum
28: doctypedecl ::= doctypedeclStart doctypedeclContent doctypedeclEnd
34: eq ::= '='
36: encodingDecl ::= 'encoding' eq '"' encName '"'
37: encodingDecl ::= 'encoding' eq ''' encName '''
38: sdDecl ::= 'standalone' eq yesNo '''
39: sdDecl ::= 'standalone' eq yesNo '"'
40: doctypedeclStart ::= '<!DOCTYPE' qName optExternalID
41: doctypedeclContent ::= ('\[' intSubset '\]')?
42: doctypedeclEnd ::= '>'
43: utf8 ::= 'xEFxBBxBF'
44: utf16LE ::= 'xFFxFE'
45: utf32LE ::= 'xFFxFEx00x00'
46: utf16BE ::= 'xFExFF'
47: utf32BE ::= 'x00x00xFExFF'
49: optExternalID ::= externalID
52: externalID ::= 'SYSTEM' systemLiteral
53: externalID ::= 'PUBLIC' pubidLiteral systemLiteral
55: pubidLiteral ::= pubidLiteralMinusApostrophe
56: pubidLiteral ::= pubidLiteralWithApostrophe
60: markupdecl ::= attlistDecl
61: markupdecl ::= elementdecl
63: markupdecl ::= notationDecl
64: attlistDecl ::= '<!ATTLIST' qName attDef* '>'
65: elementdecl ::= '<!ELEMENT' qName contentspec '>'
66: entityDecl ::= geDecl
67: entityDecl ::= peDecl
68: notationDecl ::= '<!NOTATION' name externalID '>'
69: notationDecl ::= '<!NOTATION' name publicID '>'
72: contentspec ::= 'EMPTY'
73: contentspec ::= 'ANY'
75: contentspec ::= mixed
76: geDecl ::= '<!ENTITY' name entityDef '>'
77: peDecl ::= '<!ENTITY' '%' name peDef '>'
78: publicID ::= 'PUBLIC' pubidLiteral
79: attDef ::= nsAttName attType defaultDecl
80: attDef ::= qName attType defaultDecl
81: children ::= seq ('[\+\*\?]')?
82: children ::= choice ('[\+\*\?]')?
83: mixed ::= '(' '#PCDATA' ')'
84: mixed ::= '(' '#PCDATA' mixedNames ')' '*'
85: entityDef ::= externalID nDataDecl?
87: peDef ::= externalID
88: peDef ::= entityValue
91: attType ::= enumeratedType
92: defaultDecl ::= '#IMPLIED'
93: defaultDecl ::= '#FIXED'? attValue
94: defaultDecl ::= '#REQUIRED'
95: seq ::= '(' cp ('\,' cp)* ')'
98: choice ::= '(' cp ('\|' cp)+ ')'
99: mixedNames ::=
100: mixedNames ::= mixedNames '|' qName
103: entityValue ::= quotEntityValueStart
104: entityValue ::= aposEntityValueStart
105: stringType ::= 'CDATA'
106: tokenizedType ::= 'ID' 'REF'
107: tokenizedType ::= 'ENTITY'
108: tokenizedType ::= 'ID' 'REF' 'S'
109: tokenizedType ::= 'NMTOKEN'
110: tokenizedType ::= 'ID'
111: tokenizedType ::= 'NMTOKEN' 'S'
112: tokenizedType ::= 'ENTITIES'
113: enumeratedType ::= enumeration
114: enumeratedType ::= notationType
117: attValue ::= quotAttValueStart
118: attValue ::= aposAttValueStart
119: cp ::= qName ('[\+\*\?]')?
120: cp ::= seq ('[\+\*\?]')?
121: cp ::= choice ('[\+\*\?]')?
127: nDataDecl ::= 'NDATA' name
128: quotEntityValueStart ::= '"'
129: aposEntityValueStart ::= '''
130: enumeration ::= '(' nmtoken enumerationNMTokens ')'
131: notationType ::= 'NOTATION' '(' name notationTypeNames ')'
132: quotAttValueStart ::= '"'
133: aposAttValueStart ::= '''
136: enumerationNMTokens ::= enumerationNMTokens '|' nmtoken
138: notationTypeNames ::= notationTypeNames '|' name
comment = '<!\-\-[\x01-\uD7FF\uE000-\uFFFD\x{10000}-\x{10FFFF}]*\-\->'
name = '[:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}][:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]*'
version = '"[0-9]\.[0-9]"|'[0-9]\.[0-9]''
systemLiteral = '"[^"]*"|'[^']*''
pubidLiteralWithApostrophe = '"[\x20\x0D\x0Aa-zA-Z0-9\-'\(\)\+\,\./:=\?;!\*#@\$_%]*"'
pubidLiteralMinusApostrophe = ''[\x20\x0D\x0Aa-zA-Z0-9\-\(\)\+\,\./:=\?;!\*#@\$_%]*''
qName = '[A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}][A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]*(:[A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}][A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]*)?'
eol = '\x0d\x0a|\x0d\x85|\x85|\x0d|\u2028'
pi = '<\?[\x01-\uD7FF\uE000-\uFFFD\x{10000}-\x{10FFFF}]*\?>'
nsAttName = 'xmlns(:[A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}][A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]*)?'
sTagName = '<[A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}][A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]*(:[A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}][A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]*)?'
encName = '[A-Za-z][A-Za-z0-9\._\-]*'
nmtoken = '[:A-Z_a-z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\x{10000}-\x{10FFFF}\-\.0-9\xB7\u0300-\u036F\u203F-\u2040]+'
utf32BEPrefix = '\x00\x00\x00<\x00\x00\x00\?\x00\x00\x00x\x00\x00\x00m\x00\x00\x00l'
utf32LEPrefix = '<\x00\x00\x00\?\x00\x00\x00x\x00\x00\x00m\x00\x00\x00l\x00\x00\x00'
utf16BEPrefix = '\x00<\x00\?\x00x\x00m\x00l'
utf16LEPrefix = '<\x00\?\x00x\x00m\x00l\x00'
'xEFxBBxBF' Sh/Rd 43
'xFFxFE' Sh/Rd 44
'xFFxFEx00x00' Sh/Rd 45
'xFExFF' Sh/Rd 46
'x00x00xFExFF' Sh/Rd 47
byteOrderMark Gt/Rd 17
byteOrderMark? Goto 4
utf16LEPrefix Reduce 16
utf32BEPrefix Reduce 16
utf32LEPrefix Reduce 16
utf8Prefix Reduce 16
utf16BEPrefix Reduce 16
'<!DOCTYPE' Reduce 6
Eof Reduce 0
document->prolog .element misc*
xmlDecl->byteOrderMark? .xmlPrefix versionInfo encodingDecl? sdDecl? '?>'
utf16BEPrefix Sh/Rd 22
utf8Prefix Sh/Rd 21
utf32LEPrefix Sh/Rd 20
utf32BEPrefix Sh/Rd 19
utf16LEPrefix Sh/Rd 18
prolog->xmlDecl? .misc* (doctypedecl misc*)?
'<!DOCTYPE' Reduce 5
document->prolog element .misc*
Eof Reduce 5
xmlDecl->byteOrderMark? xmlPrefix .versionInfo encodingDecl? sdDecl? '?>'
'version' Shift 11
versionInfo Goto 10
prolog->xmlDecl? misc* .(doctypedecl misc*)?
'<!DOCTYPE' Shift 13
(doctypedecl misc*)? Gt/Rd 2
(doctypedecl misc*) Gt/Rd 9
doctypedeclStart Goto 12
doctypedecl Goto 14
(comment|pi) Gt/Rd 11
document->prolog element misc* . (1)
document->prolog element misc* . (1)
(comment|pi) Gt/Rd 11
Eof Reduce 1
xmlDecl->byteOrderMark? xmlPrefix versionInfo .encodingDecl? sdDecl? '?>'
'encoding' Shift 16
encodingDecl? Goto 15
encodingDecl Gt/Rd 24
'standalone' Reduce 25
'?>' Reduce 25
versionInfo->'version' .eq versionNum
'=' Sh/Rd 34
doctypedecl->doctypedeclStart .doctypedeclContent doctypedeclEnd
('\[' intSubset '\]')?->. (50)
'[' Shift 19
doctypedeclContent Goto 18
('\[' intSubset '\]')? Gt/Rd 41
('\[' intSubset '\]') Gt/Rd 51
'>' Reduce 50
doctypedeclStart->'<!DOCTYPE' .qName optExternalID
(doctypedecl misc*)->doctypedecl .misc*
xmlDecl->byteOrderMark? xmlPrefix versionInfo encodingDecl? .sdDecl? '?>'
'standalone' Shift 23
'?>' Reduce 27
encodingDecl->'encoding' .eq '"' encName '"'
encodingDecl->'encoding' .eq ''' encName '''
'=' Sh/Rd 34
versionInfo->'version' eq .versionNum
versionNum Gt/Rd 23
doctypedecl->doctypedeclStart doctypedeclContent .doctypedeclEnd
'>' Sh/Rd 42
doctypedeclEnd Gt/Rd 28
('\[' intSubset '\]')->'[' .intSubset ']'
markupdecl*->. (58)
markupdecl* Goto 26
'<!ATTLIST' Reduce 58
'<!ELEMENT' Reduce 58
'<!ENTITY' Reduce 58
'<!NOTATION' Reduce 58
']' Reduce 58
doctypedeclStart->'<!DOCTYPE' qName .optExternalID
'PUBLIC' Shift 27
'SYSTEM' Shift 28
optExternalID Gt/Rd 40
externalID Gt/Rd 49
'[' Reduce 48
'>' Reduce 48
(doctypedecl misc*)->doctypedecl misc* . (13)
(doctypedecl misc*)->doctypedecl misc* . (13)
(comment|pi) Gt/Rd 11
xmlDecl->byteOrderMark? xmlPrefix versionInfo encodingDecl? sdDecl? .'?>'
'?>' Sh/Rd 12
sdDecl->'standalone' .eq yesNo '''
sdDecl->'standalone' .eq yesNo '"'
'=' Sh/Rd 34
encodingDecl->'encoding' eq .'"' encName '"'
encodingDecl->'encoding' eq .''' encName '''
''' Shift 30
'"' Shift 31
('\[' intSubset '\]')->'[' intSubset .']'
']' Sh/Rd 54
markupdecl*->markupdecl* .markupdecl
'<!NOTATION' Shift 32
'<!ENTITY' Shift 33
'<!ELEMENT' Shift 34
'<!ATTLIST' Shift 35
markupdecl Gt/Rd 59
notationDecl Gt/Rd 63
entityDecl Gt/Rd 62
elementdecl Gt/Rd 61
attlistDecl Gt/Rd 60
']' Reduce 57
externalID->'PUBLIC' .pubidLiteral systemLiteral
pubidLiteralWithApostrophe Sh/Rd 56
pubidLiteralMinusApostrophe Sh/Rd 55
pubidLiteral Goto 36
externalID->'SYSTEM' .systemLiteral
systemLiteral Sh/Rd 52
sdDecl->'standalone' eq .yesNo '''
sdDecl->'standalone' eq .yesNo '"'
encodingDecl->'encoding' eq ''' .encName '''
encodingDecl->'encoding' eq '"' .encName '"'
notationDecl->'<!NOTATION' .name externalID '>'
notationDecl->'<!NOTATION' .name publicID '>'
geDecl->'<!ENTITY' .name entityDef '>'
peDecl->'<!ENTITY' .'%' name peDef '>'
'%' Shift 41
elementdecl->'<!ELEMENT' .qName contentspec '>'
attlistDecl->'<!ATTLIST' .qName attDef* '>'
externalID->'PUBLIC' pubidLiteral .systemLiteral
systemLiteral Sh/Rd 53
sdDecl->'standalone' eq yesNo .'''
sdDecl->'standalone' eq yesNo .'"'
'"' Sh/Rd 39
''' Sh/Rd 38
encodingDecl->'encoding' eq ''' encName .'''
''' Sh/Rd 37
encodingDecl->'encoding' eq '"' encName .'"'
'"' Sh/Rd 36
notationDecl->'<!NOTATION' name .externalID '>'
notationDecl->'<!NOTATION' name .publicID '>'
'SYSTEM' Shift 28
'PUBLIC' Shift 47
externalID Goto 46
peDecl->'<!ENTITY' '%' .name peDef '>'
geDecl->'<!ENTITY' name .entityDef '>'
'"' Sh/Rd 128
''' Sh/Rd 129
'PUBLIC' Shift 27
'SYSTEM' Shift 28
entityValue Gt/Rd 86
externalID Goto 50
aposEntityValueStart Gt/Rd 104
quotEntityValueStart Gt/Rd 103
elementdecl->'<!ELEMENT' qName .contentspec '>'
'ANY' Sh/Rd 73
'EMPTY' Sh/Rd 72
'(' Shift 52
contentspec Goto 51
attlistDecl->'<!ATTLIST' qName .attDef* '>'
'>' Reduce 70
notationDecl->'<!NOTATION' name publicID .'>'
'>' Sh/Rd 69
notationDecl->'<!NOTATION' name externalID .'>'
'>' Sh/Rd 68
externalID->'PUBLIC' .pubidLiteral systemLiteral
publicID->'PUBLIC' .pubidLiteral
pubidLiteralWithApostrophe Sh/Rd 56
pubidLiteralMinusApostrophe Sh/Rd 55
pubidLiteral Goto 56
peDecl->'<!ENTITY' '%' name .peDef '>'
'"' Sh/Rd 128
''' Sh/Rd 129
'PUBLIC' Shift 27
'SYSTEM' Shift 28
entityValue Gt/Rd 88
externalID Gt/Rd 87
aposEntityValueStart Gt/Rd 104
quotEntityValueStart Gt/Rd 103
geDecl->'<!ENTITY' name entityDef .'>'
'>' Sh/Rd 76
entityDef->externalID .nDataDecl?
nDataDecl?->. (102)
'NDATA' Shift 58
nDataDecl? Gt/Rd 85
'>' Reduce 102
elementdecl->'<!ELEMENT' qName contentspec .'>'
'>' Sh/Rd 65
mixed->'(' .'#PCDATA' ')'
mixed->'(' .'#PCDATA' mixedNames ')' '*'
seq->'(' .cp ('\,' cp)* ')'
choice->'(' .cp ('\|' cp)+ ')'
'#PCDATA' Shift 60
'(' Shift 64
children->choice .('[\+\*\?]')?
'[+*?]' Sh/Rd 124
('[\+\*\?]')? Gt/Rd 82
('[\+\*\?]') Gt/Rd 96
'>' Reduce 97
'[+*?]' Sh/Rd 124
('[\+\*\?]')? Gt/Rd 81
('[\+\*\?]') Gt/Rd 96
'>' Reduce 97
attlistDecl->'<!ATTLIST' qName attDef* .'>'
'>' Sh/Rd 64
externalID->'PUBLIC' pubidLiteral .systemLiteral
publicID->'PUBLIC' pubidLiteral . (78)
publicID->'PUBLIC' pubidLiteral . (78)
systemLiteral Sh/Rd 53
'>' Reduce 78
peDecl->'<!ENTITY' '%' name peDef .'>'
'>' Sh/Rd 77
seq->'(' cp .('\,' cp)* ')'
choice->'(' cp .('\|' cp)+ ')'
('\,' cp)*->. (122)
'|' Shift 69
('\,' cp)* Goto 67
('\|' cp)+ Goto 68
')' Reduce 122
',' Reduce 122
mixed->'(' '#PCDATA' .')'
mixed->'(' '#PCDATA' .mixedNames ')' '*'
mixedNames->. (99)
')' Shift 89
mixedNames Goto 70
'|' Reduce 99
'[+*?]' Sh/Rd 124
('[\+\*\?]')? Gt/Rd 121
('[\+\*\?]') Gt/Rd 96
')' Reduce 97
',' Reduce 97
'|' Reduce 97
'[+*?]' Sh/Rd 124
('[\+\*\?]')? Gt/Rd 120
('[\+\*\?]') Gt/Rd 96
')' Reduce 97
',' Reduce 97
'|' Reduce 97
'[+*?]' Sh/Rd 124
('[\+\*\?]')? Gt/Rd 119
('[\+\*\?]') Gt/Rd 96
')' Reduce 97
',' Reduce 97
'|' Reduce 97
seq->'(' .cp ('\,' cp)* ')'
choice->'(' .cp ('\|' cp)+ ')'
'(' Shift 64
attDef->qName .attType defaultDecl
'(' Shift 72
'NOTATION' Shift 73
'ENTITIES' Sh/Rd 112
'NMTOKEN' Shift 74
'ENTITY' Sh/Rd 107
'ID' Shift 75
'CDATA' Sh/Rd 105
enumeratedType Gt/Rd 91
tokenizedType Gt/Rd 90
stringType Gt/Rd 89
notationType Gt/Rd 114
enumeration Gt/Rd 113
attDef->nsAttName .attType defaultDecl
'(' Shift 72
'NOTATION' Shift 73
'ENTITIES' Sh/Rd 112
'NMTOKEN' Shift 74
'ENTITY' Sh/Rd 107
'ID' Shift 75
'CDATA' Sh/Rd 105
enumeratedType Gt/Rd 91
tokenizedType Gt/Rd 90
stringType Gt/Rd 89
notationType Gt/Rd 114
enumeration Gt/Rd 113
seq->'(' cp ('\,' cp)* .')'
('\,' cp)*->('\,' cp)* .('\,' cp)
')' Sh/Rd 95
',' Shift 77
choice->'(' cp ('\|' cp)+ .')'
('\|' cp)+->('\|' cp)+ .('\|' cp)
')' Sh/Rd 98
'|' Shift 69
'(' Shift 64
mixed->'(' '#PCDATA' mixedNames .')' '*'
mixedNames->mixedNames .'|' qName
'|' Shift 78
')' Shift 79
attDef->qName attType .defaultDecl
'#REQUIRED' Sh/Rd 94
'#IMPLIED' Sh/Rd 92
'#FIXED' Sh/Rd 116
defaultDecl Gt/Rd 80
'"' Reduce 115
''' Reduce 115
enumeration->'(' .nmtoken enumerationNMTokens ')'
notationType->'NOTATION' .'(' name notationTypeNames ')'
'(' Shift 82
tokenizedType->'NMTOKEN' . (109)
tokenizedType->'NMTOKEN' .'S'
tokenizedType->'NMTOKEN' . (109)
'S' Sh/Rd 111
'#IMPLIED' Reduce 109
'#FIXED' Reduce 109
'"' Reduce 109
''' Reduce 109
'#REQUIRED' Reduce 109
tokenizedType->'ID' .'REF'
tokenizedType->'ID' .'REF' 'S'
tokenizedType->'ID' . (110)
tokenizedType->'ID' . (110)
'REF' Shift 83
'#IMPLIED' Reduce 110
'#FIXED' Reduce 110
'"' Reduce 110
''' Reduce 110
'#REQUIRED' Reduce 110
attDef->nsAttName attType .defaultDecl
'#REQUIRED' Sh/Rd 94
'#IMPLIED' Sh/Rd 92
'#FIXED' Sh/Rd 116
defaultDecl Gt/Rd 79
'"' Reduce 115
''' Reduce 115
'(' Shift 64
mixedNames->mixedNames '|' .qName
mixed->'(' '#PCDATA' mixedNames ')' .'*'
'*' Sh/Rd 84
defaultDecl->'#FIXED'? .attValue
''' Sh/Rd 133
'"' Sh/Rd 132
aposAttValueStart Gt/Rd 118
quotAttValueStart Gt/Rd 117
enumeration->'(' nmtoken .enumerationNMTokens ')'
enumerationNMTokens Goto 84
')' Reduce 137
'|' Reduce 137
notationType->'NOTATION' '(' .name notationTypeNames ')'
tokenizedType->'ID' 'REF' . (106)
tokenizedType->'ID' 'REF' .'S'
tokenizedType->'ID' 'REF' . (106)
'S' Sh/Rd 108
'#IMPLIED' Reduce 106
'#FIXED' Reduce 106
'"' Reduce 106
''' Reduce 106
'#REQUIRED' Reduce 106
enumeration->'(' nmtoken enumerationNMTokens .')'
enumerationNMTokens->enumerationNMTokens .'|' nmtoken
'|' Shift 86
')' Sh/Rd 130
notationType->'NOTATION' '(' name .notationTypeNames ')'
notationTypeNames Goto 87
')' Reduce 139
'|' Reduce 139
enumerationNMTokens->enumerationNMTokens '|' .nmtoken
notationType->'NOTATION' '(' name notationTypeNames .')'
notationTypeNames->notationTypeNames .'|' name
'|' Shift 88
')' Sh/Rd 131
notationTypeNames->notationTypeNames '|' .name
'>' Sh/Rd 83
'*' Reduce 99
stringType ==>> { 'CDATA'}
(doctypedecl misc*)? ==>> { Empty '<!DOCTYPE'}
utf8 ==>> { '\xEF\xBB\xBF'}
enumerationNMTokens ==>> { '\|' Empty}
nDataDecl? ==>> { 'NDATA' Empty}
aposEntityValueStart ==>> { '''}
markupdecl ==>> { '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION'}
doctypedecl ==>> { '<!DOCTYPE'}
peDef ==>> { 'SYSTEM' 'PUBLIC' '"' '''}
mixedNames ==>> { Empty '\|'}
tokenizedType ==>> { 'ID' 'ENTITY' 'NMTOKEN' 'ENTITIES'}
publicID ==>> { 'PUBLIC'}
notationTypeNames ==>> { '\|' Empty}
(doctypedecl misc*) ==>> { '<!DOCTYPE'}
entityValue ==>> { '"' '''}
misc* ==>> { pi comment Empty}
entityDef ==>> { 'SYSTEM' 'PUBLIC' '"' '''}
('\|' cp) ==>> { '\|'}
peDecl ==>> { '<!ENTITY'}
xmlDecl? ==>> { Empty '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF' utf16LEPrefix utf32BEPrefix utf32LEPrefix utf8Prefix utf16BEPrefix}
doctypedeclStart ==>> { '<!DOCTYPE'}
xmlPrefix ==>> { utf16LEPrefix utf32BEPrefix utf32LEPrefix utf8Prefix utf16BEPrefix}
externalID ==>> { 'SYSTEM' 'PUBLIC'}
attDef ==>> { nsAttName qName}
prolog ==>> { '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF' utf16LEPrefix utf32BEPrefix utf32LEPrefix utf8Prefix utf16BEPrefix pi comment '<!DOCTYPE' Empty}
('\[' intSubset '\]')? ==>> { Empty '\['}
markupdecl* ==>> { Empty '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION'}
defaultDecl ==>> { '#IMPLIED' '#FIXED' '"' ''' '#REQUIRED'}
enumeration ==>> { '\('}
contentspec ==>> { 'EMPTY' 'ANY' '\('}
attlistDecl ==>> { '<!ATTLIST'}
attValue ==>> { '"' '''}
('[\+\*\?]')? ==>> { '[\+\*\?]' Empty}
elementdecl ==>> { '<!ELEMENT'}
versionNum ==>> { version}
quotAttValueStart ==>> { '"'}
byteOrderMark? ==>> { Empty '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF'}
optExternalID ==>> { Empty 'SYSTEM' 'PUBLIC'}
(comment|pi) ==>> { pi comment}
choice ==>> { '\('}
utf16BE ==>> { '\xFE\xFF'}
children ==>> { '\('}
attType ==>> { 'CDATA' 'ID' 'ENTITY' 'NMTOKEN' 'ENTITIES' '\(' 'NOTATION'}
xmlDecl ==>> { '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF' utf16LEPrefix utf32BEPrefix utf32LEPrefix utf8Prefix utf16BEPrefix}
doctypedeclEnd ==>> { '>'}
('\|' cp)+ ==>> { '\|'}
document ==>> { '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF' utf16LEPrefix utf32BEPrefix utf32LEPrefix utf8Prefix utf16BEPrefix pi comment '<!DOCTYPE' sTagName}
sdDecl? ==>> { 'standalone' Empty}
entityDecl ==>> { '<!ENTITY'}
('\,' cp) ==>> { '\,'}
mixed ==>> { '\('}
utf32LE ==>> { '\xFF\xFE\x00\x00'}
utf32BE ==>> { '\x00\x00\xFE\xFF'}
notationType ==>> { 'NOTATION'}
('\[' intSubset '\]') ==>> { '\['}
('\,' cp)* ==>> { Empty '\,'}
versionInfo ==>> { 'version'}
enumeratedType ==>> { '\(' 'NOTATION'}
nDataDecl ==>> { 'NDATA'}
pubidLiteral ==>> { pubidLiteralMinusApostrophe pubidLiteralWithApostrophe}
('[\+\*\?]') ==>> { '[\+\*\?]'}
'#FIXED'? ==>> { Empty '#FIXED'}
attDef* ==>> { Empty nsAttName qName}
sdDecl ==>> { 'standalone'}
aposAttValueStart ==>> { '''}
doctypedeclContent ==>> { '\[' Empty}
encodingDecl? ==>> { 'encoding' Empty}
quotEntityValueStart ==>> { '"'}
utf16LE ==>> { '\xFF\xFE'}
notationDecl ==>> { '<!NOTATION'}
seq ==>> { '\('}
intSubset ==>> { '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION' Empty}
geDecl ==>> { '<!ENTITY'}
byteOrderMark ==>> { '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF'}
encodingDecl ==>> { 'encoding'}
eq ==>> { '='}
Accept ==>> { '\xEF\xBB\xBF' '\xFF\xFE' '\xFF\xFE\x00\x00' '\xFE\xFF' '\x00\x00\xFE\xFF' utf16LEPrefix utf32BEPrefix utf32LEPrefix utf8Prefix utf16BEPrefix pi comment '<!DOCTYPE' sTagName}
stringType ==>> {}
(doctypedecl misc*)? ==>> { doctypedecl doctypedeclStart ?{doctypedecl,misc?}}
utf8 ==>> {}
enumerationNMTokens ==>> {}
nDataDecl? ==>> { nDataDecl}
aposEntityValueStart ==>> {}
markupdecl ==>> { notationDecl geDecl peDecl entityDecl elementdecl attlistDecl}
doctypedecl ==>> { doctypedeclStart}
peDef ==>> { quotEntityValueStart aposEntityValueStart entityValue externalID}
mixedNames ==>> {}
tokenizedType ==>> {}
publicID ==>> {}
notationTypeNames ==>> {}
(doctypedecl misc*) ==>> { doctypedeclStart doctypedecl}
entityValue ==>> { aposEntityValueStart quotEntityValueStart}
misc* ==>> {}
entityDef ==>> { quotEntityValueStart aposEntityValueStart entityValue externalID}
('\|' cp) ==>> {}
peDecl ==>> {}
xmlDecl? ==>> { byteOrderMark¿ utf8 utf16LE utf32LE utf16BE utf32BE byteOrderMark xmlDecl}
doctypedeclStart ==>> {}
xmlPrefix ==>> {}
externalID ==>> {}
attDef ==>> {}
sTag ==>> {}
prolog ==>> { xmlDecl byteOrderMark utf32BE utf16BE utf32LE utf16LE utf8 byteOrderMark¿ xmlDecl¿}
('\[' intSubset '\]')? ==>> { ?{'\[',intSubset,'\]'}}
markupdecl* ==>> {}
defaultDecl ==>> { '#FIXED'¿}
enumeration ==>> {}
contentspec ==>> { mixed seq choice children}
attlistDecl ==>> {}
attValue ==>> { aposAttValueStart quotAttValueStart}
('[\+\*\?]')? ==>> { ?{'[\+\*\?]'}}
elementdecl ==>> {}
versionNum ==>> {}
quotAttValueStart ==>> {}
byteOrderMark? ==>> { utf8 utf16LE utf32LE utf16BE utf32BE byteOrderMark}
optExternalID ==>> { externalID}
(comment|pi) ==>> {}
choice ==>> {}
utf16BE ==>> {}
attType ==>> { enumeration notationType enumeratedType tokenizedType stringType}
xmlDecl ==>> { byteOrderMark utf32BE utf16BE utf32LE utf16LE utf8 byteOrderMark¿}
doctypedeclEnd ==>> {}
('\|' cp)+ ==>> { ?{'\|',cp}}
document ==>> { xmlDecl¿ byteOrderMark¿ utf8 utf16LE utf32LE utf16BE utf32BE byteOrderMark xmlDecl prolog}
entityDecl ==>> { peDecl geDecl}
('\,' cp) ==>> {}
mixed ==>> {}
utf32LE ==>> {}
utf32BE ==>> {}
notationType ==>> {}
('\[' intSubset '\]') ==>> {}
('\,' cp)* ==>> {}
versionInfo ==>> {}
enumeratedType ==>> { notationType enumeration}
nDataDecl ==>> {}
pubidLiteral ==>> {}
('[\+\*\?]') ==>> {}
'#FIXED'? ==>> {}
attDef* ==>> {}
sdDecl ==>> {}
aposAttValueStart ==>> {}
doctypedeclContent ==>> { ?{'\[',intSubset,'\]'} ?{'\[',intSubset,'\]'}¿}
encodingDecl? ==>> { encodingDecl}
quotEntityValueStart ==>> {}
misc ==>> { ?{comment|pi}}
utf16LE ==>> {}
notationDecl ==>> {}
seq ==>> {}
intSubset ==>> { markupdecl?}
geDecl ==>> {}
byteOrderMark ==>> { utf32BE utf16BE utf32LE utf16LE utf8}
encodingDecl ==>> {}
eq ==>> {}
Accept ==>> { prolog xmlDecl byteOrderMark utf32BE utf16BE utf32LE utf16LE utf8 byteOrderMark¿ xmlDecl¿ document}
stringType ==>> false
(doctypedecl misc*)? ==>> true
utf8 ==>> false
enumerationNMTokens ==>> true
nDataDecl? ==>> true
aposEntityValueStart ==>> false
markupdecl ==>> false
doctypedecl ==>> false
peDef ==>> false
mixedNames ==>> true
tokenizedType ==>> false
publicID ==>> false
notationTypeNames ==>> true
(doctypedecl misc*) ==>> false
entityValue ==>> false
misc* ==>> true
element ==>> false
entityDef ==>> false
('\|' cp) ==>> false
peDecl ==>> false
xmlDecl? ==>> true
doctypedeclStart ==>> false
xmlPrefix ==>> false
externalID ==>> false
attDef ==>> false
sTag ==>> false
prolog ==>> true
cp ==>> false
('\[' intSubset '\]')? ==>> true
markupdecl* ==>> true
defaultDecl ==>> false
enumeration ==>> false
contentspec ==>> false
attlistDecl ==>> false
attValue ==>> false
('[\+\*\?]')? ==>> true
elementdecl ==>> false
versionNum ==>> false
quotAttValueStart ==>> false
byteOrderMark? ==>> true
optExternalID ==>> true
(comment|pi) ==>> false
choice ==>> false
utf16BE ==>> false
children ==>> false
attType ==>> false
xmlDecl ==>> false
doctypedeclEnd ==>> false
('\|' cp)+ ==>> false
document ==>> false
sdDecl? ==>> true
entityDecl ==>> false
('\,' cp) ==>> false
mixed ==>> false
utf32LE ==>> false
utf32BE ==>> false
notationType ==>> false
('\[' intSubset '\]') ==>> false
('\,' cp)* ==>> true
versionInfo ==>> false
enumeratedType ==>> false
nDataDecl ==>> false
pubidLiteral ==>> false
('[\+\*\?]') ==>> false
'#FIXED'? ==>> true
attDef* ==>> true
sdDecl ==>> false
aposAttValueStart ==>> false
doctypedeclContent ==>> true
encodingDecl? ==>> true
quotEntityValueStart ==>> false
misc ==>> false
utf16LE ==>> false
notationDecl ==>> false
seq ==>> false
intSubset ==>> true
geDecl ==>> false
byteOrderMark ==>> false
encodingDecl ==>> false
eq ==>> false
Accept ==>> false