Grammar

This grammar is LALR(2)

Number of Rules 117

Number of Terminals 55

Number of Lr0 States82

Number of La States1

BNF

Accept ::= extSubset

1: extSubset ::= textDecl? extSubsetDecl*

6: textDecl ::= '<?xml' versionInfo? encodingDecl '>'

7: extSubsetDecl ::= markupdecl

8: extSubsetDecl ::= conditionalSect

11: encodingDecl ::= 'encoding' eq '"' encName '"'

12: encodingDecl ::= 'encoding' eq ''' encName '''

13: markupdecl ::= attlistDecl

14: markupdecl ::= elementdecl

15: markupdecl ::= entityDecl

16: markupdecl ::= notationDecl

17: conditionalSect ::= includeSect

18: conditionalSect ::= ignoreSect

19: versionInfo ::= 'version' eq versionNum

20: eq ::= '='

21: attlistDecl ::= '<!ATTLIST' qName attDefs '>'

22: elementdecl ::= '<!ELEMENT' qName contentspec '>'

23: entityDecl ::= geDecl

24: entityDecl ::= peDecl

25: notationDecl ::= '<!NOTATION' name externalID '>'

26: notationDecl ::= '<!NOTATION' name publicID '>'

27: includeSect ::= '<![' 'INCLUDE' '[' extSubsetDecl ']]>'

28: ignoreSect ::= '<![' 'IGNORE' '[' ignoreSectContents ']]>'

29: versionNum ::= version

30: attDefs ::=

31: attDefs ::= attDefs attDef

32: contentspec ::= children

33: contentspec ::= anyContentspec

34: contentspec ::= mixed

35: contentspec ::= emptyContentspec

36: geDecl ::= '<!ENTITY' name entityDef '>'

37: peDecl ::= '<!ENTITY' '%' name peDef '>'

38: externalID ::= 'SYSTEM' systemLiteral

39: externalID ::= 'PUBLIC' pubidLiteral systemLiteral

40: publicID ::= 'PUBLIC' pubidLiteral

41: ignoreSectContents ::= ignore ('<!\[' ignoreSectContents '\]\]>' ignore)*

42: attDef ::= nsAttName attType defaultDecl

43: attDef ::= qName attType defaultDecl

44: children ::= seq quantifier

45: children ::= choice quantifier

46: anyContentspec ::= 'ANY'

47: mixed ::= '(' '#PCDATA' ')'

48: mixed ::= '(' '#PCDATA' mixedNames ')' '*'

49: emptyContentspec ::= 'EMPTY'

50: entityDef ::= externalID nDataDecl?

51: entityDef ::= entityValue

52: peDef ::= externalID

53: peDef ::= entityValue

54: pubidLiteral ::= pubidLiteralMinusApostrophe

55: pubidLiteral ::= pubidLiteralWithApostrophe

56: ignore ::= ignoreEnd

59: attType ::= stringType

60: attType ::= tokenizedType

61: attType ::= enumeratedType

62: defaultDecl ::= defaultDeclImplied

63: defaultDecl ::= defaultDeclRequired

64: defaultDecl ::= attValue

65: defaultDecl ::= defaultDeclFixed

66: seq ::= '(' seqs ')'

67: quantifier ::=

68: quantifier ::= quantifierChar

69: choice ::= '(' choices ')'

70: mixedNames ::=

71: mixedNames ::= mixedNames '|' qName

74: entityValue ::= quotEntityValueStart

75: entityValue ::= aposEntityValueStart

77: stringType ::= 'CDATA'

78: tokenizedType ::= tokenizedTypeEntities

79: tokenizedType ::= tokenizedTypeIdRefs

80: tokenizedType ::= tokenizedTypeIdRef

81: tokenizedType ::= tokenizedTypeNmToken

82: tokenizedType ::= tokenizedTypeNmTokens

83: tokenizedType ::= tokenizedTypeEntity

84: tokenizedType ::= tokenizedTypeId

85: enumeratedType ::= enumeration

86: enumeratedType ::= notationType

87: defaultDeclImplied ::= '#IMPLIED'

88: defaultDeclRequired ::= '#REQUIRED'

89: attValue ::= quotAttValueStart

90: attValue ::= aposAttValueStart

91: defaultDeclFixed ::= '#FIXED' attValue

92: seqs ::= cp

93: seqs ::= seqs ',' cp

94: choices ::= cp '|' cp

95: choices ::= choices '|' cp

96: nDataDecl ::= 'NDATA' name

97: quotEntityValueStart ::= '"'

98: aposEntityValueStart ::= '''

99: tokenizedTypeEntities ::= 'ENTITIES'

100: tokenizedTypeIdRefs ::= 'ID' 'REF' 'S'

101: tokenizedTypeIdRef ::= 'ID' 'REF'

102: tokenizedTypeNmToken ::= 'NMTOKEN'

103: tokenizedTypeNmTokens ::= 'NMTOKEN' 'S'

104: tokenizedTypeEntity ::= 'ENTITY'

105: tokenizedTypeId ::= 'ID'

106: enumeration ::= '(' enumerationNMTokens ')'

107: notationType ::= 'NOTATION' '(' notationTypeNames ')'

108: quotAttValueStart ::= '"'

109: aposAttValueStart ::= '''

110: cp ::= qName quantifier

111: cp ::= choice quantifier

112: cp ::= seq quantifier

113: enumerationNMTokens ::= enumerationNMTokens '|' nmtoken

114: enumerationNMTokens ::= nmtoken

115: notationTypeNames ::= name

116: notationTypeNames ::= notationTypeNames '|' name

Terminals

quantifierChar = '[\+\*\?]'

ignoreEnd = '[\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]*'

s = '[\x20\x09\x0A]+'

comment = '<!\-\-[\x01-\uD7FF\uE000-\uFFFD\x{10000}-\x{10FFFF}]*\-\->'

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}]*\?>'

peReference = '%[: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]*;'

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]*)?'

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]+'

States

State 1

( )

Accept->.extSubset

textDecl?->. (3)

'<?xml' Shift 4

extSubset Goto 2

textDecl? Goto 3

textDecl Gt/Rd 2

'<!ATTLIST' Reduce 3

'<!ELEMENT' Reduce 3

'<!ENTITY' Reduce 3

'<!NOTATION' Reduce 3

'<![' Reduce 3

Eof Reduce 3

State 2

( 1 )

Accept->extSubset . (0)

Accept->extSubset . (0)

Eof Reduce 0

State 3

( 1 )

extSubset->textDecl? .extSubsetDecl*

extSubsetDecl*->. (4)

extSubsetDecl* Goto 5

'<!ATTLIST' Reduce 4

'<!ELEMENT' Reduce 4

'<!ENTITY' Reduce 4

'<!NOTATION' Reduce 4

'<![' Reduce 4

Eof Reduce 4

State 4

( 1 )

textDecl->'<?xml' .versionInfo? encodingDecl '>'

versionInfo?->. (10)

'version' Shift 7

versionInfo? Goto 6

versionInfo Gt/Rd 9

'encoding' Reduce 10

State 5

( 3 )

extSubset->textDecl? extSubsetDecl* . (1)

extSubsetDecl*->extSubsetDecl* .extSubsetDecl

extSubset->textDecl? extSubsetDecl* . (1)

'<![' Shift 8

'<!ATTLIST' Shift 9

'<!ELEMENT' Shift 10

'<!ENTITY' Shift 11

'<!NOTATION' Shift 12

extSubsetDecl Gt/Rd 5

conditionalSect Gt/Rd 8

markupdecl Gt/Rd 7

ignoreSect Gt/Rd 18

includeSect Gt/Rd 17

peDecl Gt/Rd 24

geDecl Gt/Rd 23

notationDecl Gt/Rd 16

entityDecl Gt/Rd 15

elementdecl Gt/Rd 14

attlistDecl Gt/Rd 13

Eof Reduce 1

State 6

( 4 )

textDecl->'<?xml' versionInfo? .encodingDecl '>'

'encoding' Shift 14

encodingDecl Goto 13

State 7

( 4 )

versionInfo->'version' .eq versionNum

'=' Sh/Rd 20

eq Goto 15

State 8

( 5 25 )

includeSect->'<![' .'INCLUDE' '[' extSubsetDecl ']]>'

ignoreSect->'<![' .'IGNORE' '[' ignoreSectContents ']]>'

'IGNORE' Shift 16

'INCLUDE' Shift 17

State 9

( 5 25 )

attlistDecl->'<!ATTLIST' .qName attDefs '>'

qName Shift 18

State 10

( 5 25 )

elementdecl->'<!ELEMENT' .qName contentspec '>'

qName Shift 19

State 11

( 5 25 )

geDecl->'<!ENTITY' .name entityDef '>'

peDecl->'<!ENTITY' .'%' name peDef '>'

'%' Shift 20

name Shift 21

State 12

( 5 25 )

notationDecl->'<!NOTATION' .name externalID '>'

notationDecl->'<!NOTATION' .name publicID '>'

name Shift 22

State 13

( 6 )

textDecl->'<?xml' versionInfo? encodingDecl .'>'

'>' Sh/Rd 6

State 14

( 6 )

encodingDecl->'encoding' .eq '"' encName '"'

encodingDecl->'encoding' .eq ''' encName '''

'=' Sh/Rd 20

eq Goto 23

State 15

( 7 )

versionInfo->'version' eq .versionNum

version Sh/Rd 29

versionNum Gt/Rd 19

State 16

( 8 )

ignoreSect->'<![' 'IGNORE' .'[' ignoreSectContents ']]>'

'[' Shift 24

State 17

( 8 )

includeSect->'<![' 'INCLUDE' .'[' extSubsetDecl ']]>'

'[' Shift 25

State 18

( 9 )

attlistDecl->'<!ATTLIST' qName .attDefs '>'

attDefs->. (30)

attDefs Goto 26

'>' Reduce 30

nsAttName Reduce 30

qName Reduce 30

State 19

( 10 )

elementdecl->'<!ELEMENT' qName .contentspec '>'

'EMPTY' Sh/Rd 49

'ANY' Sh/Rd 46

'(' Shift 28

contentspec Goto 27

emptyContentspec Gt/Rd 35

mixed Gt/Rd 34

anyContentspec Gt/Rd 33

children Gt/Rd 32

choice Goto 29

seq Goto 30

State 20

( 11 )

peDecl->'<!ENTITY' '%' .name peDef '>'

name Shift 31

State 21

( 11 )

geDecl->'<!ENTITY' name .entityDef '>'

'"' Sh/Rd 97

''' Sh/Rd 98

'PUBLIC' Shift 34

'SYSTEM' Shift 35

entityDef Goto 32

entityValue Gt/Rd 51

externalID Goto 33

aposEntityValueStart Gt/Rd 75

quotEntityValueStart Gt/Rd 74

State 22

( 12 )

notationDecl->'<!NOTATION' name .externalID '>'

notationDecl->'<!NOTATION' name .publicID '>'

'SYSTEM' Shift 35

'PUBLIC' Shift 38

publicID Goto 36

externalID Goto 37

State 23

( 14 )

encodingDecl->'encoding' eq .'"' encName '"'

encodingDecl->'encoding' eq .''' encName '''

''' Shift 39

'"' Shift 40

State 24

( 16 )

ignoreSect->'<![' 'IGNORE' '[' .ignoreSectContents ']]>'

ignoreEnd Sh/Rd 56

ignoreSectContents Goto 41

ignore Goto 42

State 25

( 17 )

includeSect->'<![' 'INCLUDE' '[' .extSubsetDecl ']]>'

'<![' Shift 8

'<!ATTLIST' Shift 9

'<!ELEMENT' Shift 10

'<!ENTITY' Shift 11

'<!NOTATION' Shift 12

extSubsetDecl Goto 43

conditionalSect Gt/Rd 8

markupdecl Gt/Rd 7

ignoreSect Gt/Rd 18

includeSect Gt/Rd 17

peDecl Gt/Rd 24

geDecl Gt/Rd 23

notationDecl Gt/Rd 16

entityDecl Gt/Rd 15

elementdecl Gt/Rd 14

attlistDecl Gt/Rd 13

State 26

( 18 )

attlistDecl->'<!ATTLIST' qName attDefs .'>'

attDefs->attDefs .attDef

'>' Sh/Rd 21

qName Shift 44

nsAttName Shift 45

attDef Gt/Rd 31

State 27

( 19 )

elementdecl->'<!ELEMENT' qName contentspec .'>'

'>' Sh/Rd 22

State 28

( 19 )

mixed->'(' .'#PCDATA' ')'

mixed->'(' .'#PCDATA' mixedNames ')' '*'

seq->'(' .seqs ')'

choice->'(' .choices ')'

'#PCDATA' Shift 46

'(' Shift 48

qName Shift 51

seqs Goto 47

seq Goto 49

choice Goto 50

choices Goto 52

cp Goto 53

State 29

( 19 )

children->choice .quantifier

quantifier->. (67)

quantifierChar Sh/Rd 68

quantifier Gt/Rd 45

'>' Reduce 67

State 30

( 19 )

children->seq .quantifier

quantifier->. (67)

quantifierChar Sh/Rd 68

quantifier Gt/Rd 44

'>' Reduce 67

State 31

( 20 )

peDecl->'<!ENTITY' '%' name .peDef '>'

'"' Sh/Rd 97

''' Sh/Rd 98

'PUBLIC' Shift 34

'SYSTEM' Shift 35

peDef Goto 54

entityValue Gt/Rd 53

externalID Gt/Rd 52

aposEntityValueStart Gt/Rd 75

quotEntityValueStart Gt/Rd 74

State 32

( 21 )

geDecl->'<!ENTITY' name entityDef .'>'

'>' Sh/Rd 36

State 33

( 21 )

entityDef->externalID .nDataDecl?

nDataDecl?->. (73)

'NDATA' Shift 55

nDataDecl? Gt/Rd 50

nDataDecl Gt/Rd 72

'>' Reduce 73

State 34

( 21 31 )

externalID->'PUBLIC' .pubidLiteral systemLiteral

pubidLiteralWithApostrophe Sh/Rd 55

pubidLiteralMinusApostrophe Sh/Rd 54

pubidLiteral Goto 56

State 35

( 21 22 31 )

externalID->'SYSTEM' .systemLiteral

systemLiteral Sh/Rd 38

State 36

( 22 )

notationDecl->'<!NOTATION' name publicID .'>'

'>' Sh/Rd 26

State 37

( 22 )

notationDecl->'<!NOTATION' name externalID .'>'

'>' Sh/Rd 25

State 38

( 22 )

externalID->'PUBLIC' .pubidLiteral systemLiteral

publicID->'PUBLIC' .pubidLiteral

pubidLiteralWithApostrophe Sh/Rd 55

pubidLiteralMinusApostrophe Sh/Rd 54

pubidLiteral Goto 57

State 39

( 23 )

encodingDecl->'encoding' eq ''' .encName '''

encName Shift 58

State 40

( 23 )

encodingDecl->'encoding' eq '"' .encName '"'

encName Shift 59

State 41

( 24 )

ignoreSect->'<![' 'IGNORE' '[' ignoreSectContents .']]>'

']]>' Sh/Rd 28

State 42

( 24 71 )

ignoreSectContents->ignore .('<!\[' ignoreSectContents '\]\]>' ignore)*

('<!\[' ignoreSectContents '\]\]>' ignore)*->. (57)

('<!\[' ignoreSectContents '\]\]>' ignore)* Goto 60

'<![' Reduce 57

']]>' Reduce 57

State 43

( 25 )

includeSect->'<![' 'INCLUDE' '[' extSubsetDecl .']]>'

']]>' Sh/Rd 27

State 44

( 26 )

attDef->qName .attType defaultDecl

'(' Shift 62

'NOTATION' Shift 63

'ENTITIES' Sh/Rd 99

'NMTOKEN' Shift 64

'ENTITY' Sh/Rd 104

'ID' Shift 65

'CDATA' Sh/Rd 77

attType Goto 61

enumeratedType Gt/Rd 61

tokenizedType Gt/Rd 60

stringType Gt/Rd 59

notationType Gt/Rd 86

enumeration Gt/Rd 85

tokenizedTypeId Gt/Rd 84

tokenizedTypeEntity Gt/Rd 83

tokenizedTypeNmTokens Gt/Rd 82

tokenizedTypeNmToken Gt/Rd 81

tokenizedTypeIdRef Gt/Rd 80

tokenizedTypeIdRefs Gt/Rd 79

tokenizedTypeEntities Gt/Rd 78

State 45

( 26 )

attDef->nsAttName .attType defaultDecl

'(' Shift 62

'NOTATION' Shift 63

'ENTITIES' Sh/Rd 99

'NMTOKEN' Shift 64

'ENTITY' Sh/Rd 104

'ID' Shift 65

'CDATA' Sh/Rd 77

attType Goto 66

enumeratedType Gt/Rd 61

tokenizedType Gt/Rd 60

stringType Gt/Rd 59

notationType Gt/Rd 86

enumeration Gt/Rd 85

tokenizedTypeId Gt/Rd 84

tokenizedTypeEntity Gt/Rd 83

tokenizedTypeNmTokens Gt/Rd 82

tokenizedTypeNmToken Gt/Rd 81

tokenizedTypeIdRef Gt/Rd 80

tokenizedTypeIdRefs Gt/Rd 79

tokenizedTypeEntities Gt/Rd 78

State 46

( 28 )

mixed->'(' '#PCDATA' .')'

mixed->'(' '#PCDATA' .mixedNames ')' '*'

mixedNames->. (70)

')' Shift 83

mixedNames Goto 67

'|' Reduce 70

State 47

( 28 48 )

seq->'(' seqs .')'

seqs->seqs .',' cp

',' Shift 68

')' Sh/Rd 66

State 48

( 28 48 68 69 70 )

seq->'(' .seqs ')'

choice->'(' .choices ')'

'(' Shift 48

qName Shift 51

seqs Goto 47

seq Goto 49

choice Goto 50

choices Goto 52

cp Goto 53

State 49

( 28 48 68 69 70 )

cp->seq .quantifier

quantifier->. (67)

quantifierChar Sh/Rd 68

quantifier Gt/Rd 112

')' Reduce 67

'|' Reduce 67

',' Reduce 67

State 50

( 28 48 68 69 70 )

cp->choice .quantifier

quantifier->. (67)

quantifierChar Sh/Rd 68

quantifier Gt/Rd 111

')' Reduce 67

'|' Reduce 67

',' Reduce 67

State 51

( 28 48 68 69 70 )

cp->qName .quantifier

quantifier->. (67)

quantifierChar Sh/Rd 68

quantifier Gt/Rd 110

')' Reduce 67

'|' Reduce 67

',' Reduce 67

State 52

( 28 48 )

choice->'(' choices .')'

choices->choices .'|' cp

'|' Shift 69

')' Sh/Rd 69

State 53

( 28 48 )

seqs->cp . (92)

choices->cp .'|' cp

seqs->cp . (92)

'|' Shift 70

')' Reduce 92

',' Reduce 92

State 54

( 31 )

peDecl->'<!ENTITY' '%' name peDef .'>'

'>' Sh/Rd 37

State 55

( 33 )

nDataDecl->'NDATA' .name

name Sh/Rd 96

State 56

( 34 )

externalID->'PUBLIC' pubidLiteral .systemLiteral

systemLiteral Sh/Rd 39

State 57

( 38 )

externalID->'PUBLIC' pubidLiteral .systemLiteral

publicID->'PUBLIC' pubidLiteral . (40)

publicID->'PUBLIC' pubidLiteral . (40)

systemLiteral Sh/Rd 39

'>' Reduce 40

State 58

( 39 )

encodingDecl->'encoding' eq ''' encName .'''

''' Sh/Rd 12

State 59

( 40 )

encodingDecl->'encoding' eq '"' encName .'"'

'"' Sh/Rd 11

State 60

( 42 )

ignoreSectContents->ignore ('<!\[' ignoreSectContents '\]\]>' ignore)* . (41)

('<!\[' ignoreSectContents '\]\]>' ignore)*->('<!\[' ignoreSectContents '\]\]>' ignore)* .('<!\[' ignoreSectContents '\]\]>' ignore)

ignoreSectContents->ignore ('<!\[' ignoreSectContents '\]\]>' ignore)* . (41)

'<![' Shift 71

('<!\[' ignoreSectContents '\]\]>' ignore) Gt/Rd 58

']]>' Reduce 41

State 61

( 44 )

attDef->qName attType .defaultDecl

'#FIXED' Shift 72

'"' Sh/Rd 108

''' Sh/Rd 109

'#REQUIRED' Sh/Rd 88

'#IMPLIED' Sh/Rd 87

defaultDecl Gt/Rd 43

defaultDeclFixed Gt/Rd 65

attValue Gt/Rd 64

defaultDeclRequired Gt/Rd 63

defaultDeclImplied Gt/Rd 62

aposAttValueStart Gt/Rd 90

quotAttValueStart Gt/Rd 89

State 62

( 44 45 )

enumeration->'(' .enumerationNMTokens ')'

nmtoken Sh/Rd 114

enumerationNMTokens Goto 73

State 63

( 44 45 )

notationType->'NOTATION' .'(' notationTypeNames ')'

'(' Shift 74

State 64

( 44 45 )

tokenizedTypeNmToken->'NMTOKEN' . (102)

tokenizedTypeNmTokens->'NMTOKEN' .'S'

tokenizedTypeNmToken->'NMTOKEN' . (102)

'S' Sh/Rd 103

'#IMPLIED' Reduce 102

'#REQUIRED' Reduce 102

'"' Reduce 102

''' Reduce 102

'#FIXED' Reduce 102

State 65

( 44 45 )

tokenizedTypeIdRefs->'ID' .'REF' 'S'

tokenizedTypeIdRef->'ID' .'REF'

tokenizedTypeId->'ID' . (105)

tokenizedTypeId->'ID' . (105)

'REF' Shift 75

'#IMPLIED' Reduce 105

'#REQUIRED' Reduce 105

'"' Reduce 105

''' Reduce 105

'#FIXED' Reduce 105

State 66

( 45 )

attDef->nsAttName attType .defaultDecl

'#FIXED' Shift 72

'"' Sh/Rd 108

''' Sh/Rd 109

'#REQUIRED' Sh/Rd 88

'#IMPLIED' Sh/Rd 87

defaultDecl Gt/Rd 42

defaultDeclFixed Gt/Rd 65

attValue Gt/Rd 64

defaultDeclRequired Gt/Rd 63

defaultDeclImplied Gt/Rd 62

aposAttValueStart Gt/Rd 90

quotAttValueStart Gt/Rd 89

State 67

( 46 )

mixed->'(' '#PCDATA' mixedNames .')' '*'

mixedNames->mixedNames .'|' qName

'|' Shift 76

')' Shift 77

State 68

( 47 )

seqs->seqs ',' .cp

'(' Shift 48

qName Shift 51

cp Gt/Rd 93

seq Goto 49

choice Goto 50

State 69

( 52 )

choices->choices '|' .cp

'(' Shift 48

qName Shift 51

cp Gt/Rd 95

seq Goto 49

choice Goto 50

State 70

( 53 )

choices->cp '|' .cp

'(' Shift 48

qName Shift 51

cp Gt/Rd 94

seq Goto 49

choice Goto 50

State 71

( 60 )

('<!\[' ignoreSectContents '\]\]>' ignore)->'<![' .ignoreSectContents ']]>' ignore

ignoreEnd Sh/Rd 56

ignoreSectContents Goto 78

ignore Goto 42

State 72

( 61 66 )

defaultDeclFixed->'#FIXED' .attValue

''' Sh/Rd 109

'"' Sh/Rd 108

attValue Gt/Rd 91

aposAttValueStart Gt/Rd 90

quotAttValueStart Gt/Rd 89

State 73

( 62 )

enumeration->'(' enumerationNMTokens .')'

enumerationNMTokens->enumerationNMTokens .'|' nmtoken

'|' Shift 79

')' Sh/Rd 106

State 74

( 63 )

notationType->'NOTATION' '(' .notationTypeNames ')'

name Sh/Rd 115

notationTypeNames Goto 80

State 75

( 65 )

tokenizedTypeIdRefs->'ID' 'REF' .'S'

tokenizedTypeIdRef->'ID' 'REF' . (101)

tokenizedTypeIdRef->'ID' 'REF' . (101)

'S' Sh/Rd 100

'#IMPLIED' Reduce 101

'#REQUIRED' Reduce 101

'"' Reduce 101

''' Reduce 101

'#FIXED' Reduce 101

State 76

( 67 )

mixedNames->mixedNames '|' .qName

qName Sh/Rd 71

State 77

( 67 )

mixed->'(' '#PCDATA' mixedNames ')' .'*'

'*' Sh/Rd 48

State 78

( 71 )

('<!\[' ignoreSectContents '\]\]>' ignore)->'<![' ignoreSectContents .']]>' ignore

']]>' Shift 81

State 79

( 73 )

enumerationNMTokens->enumerationNMTokens '|' .nmtoken

nmtoken Sh/Rd 113

State 80

( 74 )

notationType->'NOTATION' '(' notationTypeNames .')'

notationTypeNames->notationTypeNames .'|' name

'|' Shift 82

')' Sh/Rd 107

State 81

( 78 )

('<!\[' ignoreSectContents '\]\]>' ignore)->'<![' ignoreSectContents ']]>' .ignore

ignoreEnd Sh/Rd 56

ignore Gt/Rd 76

State 82

( 80 )

notationTypeNames->notationTypeNames '|' .name

name Sh/Rd 116

Lookahead States

State 83

(
46 )

'>' Sh/Rd 47

'*' Reduce 70

First Map for Nonterminals

stringType ==>> { 'CDATA'}

enumerationNMTokens ==>> { nmtoken}

nDataDecl? ==>> { 'NDATA' Empty}

aposEntityValueStart ==>> { '''}

defaultDeclRequired ==>> { '#REQUIRED'}

defaultDeclImplied ==>> { '#IMPLIED'}

ignoreSect ==>> { '<!\['}

markupdecl ==>> { '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION'}

quantifier ==>> { Empty quantifierChar}

peDef ==>> { 'SYSTEM' 'PUBLIC' '"' '''}

mixedNames ==>> { Empty '\|'}

tokenizedType ==>> { 'ENTITIES' 'ID' 'NMTOKEN' 'ENTITY'}

publicID ==>> { 'PUBLIC'}

notationTypeNames ==>> { name}

('<!\[' ignoreSectContents '\]\]>' ignore) ==>> { '<!\['}

entityValue ==>> { '"' '''}

entityDef ==>> { 'SYSTEM' 'PUBLIC' '"' '''}

anyContentspec ==>> { 'ANY'}

includeSect ==>> { '<!\['}

peDecl ==>> { '<!ENTITY'}

tokenizedTypeId ==>> { 'ID'}

externalID ==>> { 'SYSTEM' 'PUBLIC'}

tokenizedTypeNmTokens ==>> { 'NMTOKEN'}

attDef ==>> { nsAttName qName}

textDecl? ==>> { '<\?xml' Empty}

cp ==>> { qName '\('}

emptyContentspec ==>> { 'EMPTY'}

defaultDecl ==>> { '#IMPLIED' '#REQUIRED' '"' ''' '#FIXED'}

enumeration ==>> { '\('}

contentspec ==>> { '\(' 'ANY' 'EMPTY'}

attlistDecl ==>> { '<!ATTLIST'}

defaultDeclFixed ==>> { '#FIXED'}

attValue ==>> { '"' '''}

elementdecl ==>> { '<!ELEMENT'}

versionNum ==>> { version}

quotAttValueStart ==>> { '"'}

tokenizedTypeEntities ==>> { 'ENTITIES'}

extSubsetDecl* ==>> { Empty '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION' '<!\['}

choice ==>> { '\('}

('<!\[' ignoreSectContents '\]\]>' ignore)* ==>> { Empty '<!\['}

children ==>> { '\('}

attType ==>> { 'CDATA' 'ENTITIES' 'ID' 'NMTOKEN' 'ENTITY' '\(' 'NOTATION'}

tokenizedTypeIdRef ==>> { 'ID'}

conditionalSect ==>> { '<!\['}

versionInfo? ==>> { 'version' Empty}

tokenizedTypeNmToken ==>> { 'NMTOKEN'}

entityDecl ==>> { '<!ENTITY'}

mixed ==>> { '\('}

extSubsetDecl ==>> { '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION' '<!\['}

notationType ==>> { 'NOTATION'}

ignore ==>> { ignoreEnd}

versionInfo ==>> { 'version'}

enumeratedType ==>> { '\(' 'NOTATION'}

nDataDecl ==>> { 'NDATA'}

pubidLiteral ==>> { pubidLiteralMinusApostrophe pubidLiteralWithApostrophe}

choices ==>> { qName '\('}

aposAttValueStart ==>> { '''}

tokenizedTypeIdRefs ==>> { 'ID'}

quotEntityValueStart ==>> { '"'}

notationDecl ==>> { '<!NOTATION'}

tokenizedTypeEntity ==>> { 'ENTITY'}

extSubset ==>> { '<\?xml' '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION' '<!\[' Empty}

ignoreSectContents ==>> { ignoreEnd}

textDecl ==>> { '<\?xml'}

attDefs ==>> { Empty nsAttName qName}

seq ==>> { '\('}

seqs ==>> { qName '\('}

geDecl ==>> { '<!ENTITY'}

eq ==>> { '='}

encodingDecl ==>> { 'encoding'}

Accept ==>> { '<\?xml' '<!ATTLIST' '<!ELEMENT' '<!ENTITY' '<!NOTATION' '<!\[' Eof}

Closure for Nonterminals

stringType ==>> {}

enumerationNMTokens ==>> {}

nDataDecl? ==>> { nDataDecl}

aposEntityValueStart ==>> {}

defaultDeclRequired ==>> {}

defaultDeclImplied ==>> {}

ignoreSect ==>> {}

markupdecl ==>> { notationDecl geDecl peDecl entityDecl elementdecl attlistDecl}

quantifier ==>> {}

peDef ==>> { quotEntityValueStart aposEntityValueStart entityValue externalID}

mixedNames ==>> {}

tokenizedType ==>> { tokenizedTypeId tokenizedTypeEntity tokenizedTypeNmTokens tokenizedTypeNmToken tokenizedTypeIdRef tokenizedTypeIdRefs tokenizedTypeEntities}

publicID ==>> {}

notationTypeNames ==>> {}

('<!\[' ignoreSectContents '\]\]>' ignore) ==>> {}

entityValue ==>> { aposEntityValueStart quotEntityValueStart}

entityDef ==>> { quotEntityValueStart aposEntityValueStart entityValue externalID}

anyContentspec ==>> {}

includeSect ==>> {}

peDecl ==>> {}

tokenizedTypeId ==>> {}

externalID ==>> {}

tokenizedTypeNmTokens ==>> {}

attDef ==>> {}

textDecl? ==>> { textDecl}

cp ==>> { seq choice}

emptyContentspec ==>> {}

defaultDecl ==>> { defaultDeclFixed quotAttValueStart aposAttValueStart attValue defaultDeclRequired defaultDeclImplied}

enumeration ==>> {}

contentspec ==>> { emptyContentspec mixed anyContentspec seq choice children}

attlistDecl ==>> {}

defaultDeclFixed ==>> {}

attValue ==>> { aposAttValueStart quotAttValueStart}

elementdecl ==>> {}

versionNum ==>> {}

quotAttValueStart ==>> {}

tokenizedTypeEntities ==>> {}

extSubsetDecl* ==>> {}

choice ==>> {}

('<!\[' ignoreSectContents '\]\]>' ignore)* ==>> {}

children ==>> { choice seq}

attType ==>> { enumeration notationType enumeratedType tokenizedTypeEntities tokenizedTypeIdRefs tokenizedTypeIdRef tokenizedTypeNmToken tokenizedTypeNmTokens tokenizedTypeEntity tokenizedTypeId tokenizedType stringType}

tokenizedTypeIdRef ==>> {}

conditionalSect ==>> { ignoreSect includeSect}

versionInfo? ==>> { versionInfo}

tokenizedTypeNmToken ==>> {}

entityDecl ==>> { peDecl geDecl}

mixed ==>> {}

extSubsetDecl ==>> { includeSect ignoreSect conditionalSect attlistDecl elementdecl entityDecl peDecl geDecl notationDecl markupdecl}

notationType ==>> {}

ignore ==>> {}

versionInfo ==>> {}

enumeratedType ==>> { notationType enumeration}

nDataDecl ==>> {}

pubidLiteral ==>> {}

choices ==>> { choice seq cp}

aposAttValueStart ==>> {}

tokenizedTypeIdRefs ==>> {}

quotEntityValueStart ==>> {}

notationDecl ==>> {}

tokenizedTypeEntity ==>> {}

extSubset ==>> { textDecl textDecl¿}

ignoreSectContents ==>> { ignore}

textDecl ==>> {}

attDefs ==>> {}

seq ==>> {}

seqs ==>> { choice seq cp}

geDecl ==>> {}

eq ==>> {}

encodingDecl ==>> {}

Accept ==>> { textDecl¿ textDecl extSubset}

Nullable Nonterminals

stringType ==>> false

enumerationNMTokens ==>> false

nDataDecl? ==>> true

aposEntityValueStart ==>> false

defaultDeclRequired ==>> false

defaultDeclImplied ==>> false

ignoreSect ==>> false

markupdecl ==>> false

quantifier ==>> true

peDef ==>> false

mixedNames ==>> true

tokenizedType ==>> false

publicID ==>> false

notationTypeNames ==>> false

('<!\[' ignoreSectContents '\]\]>' ignore) ==>> false

entityValue ==>> false

entityDef ==>> false

anyContentspec ==>> false

includeSect ==>> false

peDecl ==>> false

tokenizedTypeId ==>> false

externalID ==>> false

tokenizedTypeNmTokens ==>> false

attDef ==>> false

textDecl? ==>> true

cp ==>> false

emptyContentspec ==>> false

defaultDecl ==>> false

enumeration ==>> false

contentspec ==>> false

attlistDecl ==>> false

defaultDeclFixed ==>> false

attValue ==>> false

elementdecl ==>> false

versionNum ==>> false

quotAttValueStart ==>> false

tokenizedTypeEntities ==>> false

extSubsetDecl* ==>> true

choice ==>> false

('<!\[' ignoreSectContents '\]\]>' ignore)* ==>> true

children ==>> false

attType ==>> false

tokenizedTypeIdRef ==>> false

conditionalSect ==>> false

versionInfo? ==>> true

tokenizedTypeNmToken ==>> false

entityDecl ==>> false

mixed ==>> false

extSubsetDecl ==>> false

notationType ==>> false

ignore ==>> false

versionInfo ==>> false

enumeratedType ==>> false

nDataDecl ==>> false

pubidLiteral ==>> false

choices ==>> false

aposAttValueStart ==>> false

tokenizedTypeIdRefs ==>> false

quotEntityValueStart ==>> false

notationDecl ==>> false

tokenizedTypeEntity ==>> false

extSubset ==>> true

ignoreSectContents ==>> false

textDecl ==>> false

attDefs ==>> true

seq ==>> false

seqs ==>> false

geDecl ==>> false

eq ==>> false

encodingDecl ==>> false

Accept ==>> false