
regular tree grammar
  start Attribute Content Document
  productions
    ListStarOfContent0          -> ListPlusOfContent0
    ListStarOfContent0          -> <nil>()
    ListStarOfContent0          -> <conc>(ListStarOfContent0,ListStarOfContent0)
    ListPlusOfContent0          -> <conc>(ListStarOfContent0,ListPlusOfContent0)
    ListPlusOfContent0          -> <conc>(ListPlusOfContent0,ListStarOfContent0)
    ListPlusOfContent0          -> <conc>(ListPlusOfContent0,ListPlusOfContent0)
    ListPlusOfContent0          -> <cons>(Content,ListStarOfContent0)
    ListStarOfAttribute0        -> ListPlusOfAttribute0
    ListStarOfAttribute0        -> <nil>()
    ListStarOfAttribute0        -> <conc>(ListStarOfAttribute0,ListStarOfAttribute0)
    ListPlusOfAttribute0        -> <conc>(ListStarOfAttribute0,ListPlusOfAttribute0)
    ListPlusOfAttribute0        -> <conc>(ListPlusOfAttribute0,ListStarOfAttribute0)
    ListPlusOfAttribute0        -> <conc>(ListPlusOfAttribute0,ListPlusOfAttribute0)
    ListPlusOfAttribute0        -> <cons>(Attribute,ListStarOfAttribute0)
    ListStarOfSingleQuotedPart0 -> ListPlusOfSingleQuotedPart0
    ListStarOfSingleQuotedPart0 -> <nil>()
    ListStarOfSingleQuotedPart0 -> <conc>(ListStarOfSingleQuotedPart0,ListStarOfSingleQuotedPart0)
    ListPlusOfSingleQuotedPart0 -> <conc>(ListStarOfSingleQuotedPart0,ListPlusOfSingleQuotedPart0)
    ListPlusOfSingleQuotedPart0 -> <conc>(ListPlusOfSingleQuotedPart0,ListStarOfSingleQuotedPart0)
    ListPlusOfSingleQuotedPart0 -> <conc>(ListPlusOfSingleQuotedPart0,ListPlusOfSingleQuotedPart0)
    ListPlusOfSingleQuotedPart0 -> <cons>(SingleQuotedPart,ListStarOfSingleQuotedPart0)
    ListStarOfDoubleQuotedPart0 -> ListPlusOfDoubleQuotedPart0
    ListStarOfDoubleQuotedPart0 -> <nil>()
    ListStarOfDoubleQuotedPart0 -> <conc>(ListStarOfDoubleQuotedPart0,ListStarOfDoubleQuotedPart0)
    ListPlusOfDoubleQuotedPart0 -> <conc>(ListStarOfDoubleQuotedPart0,ListPlusOfDoubleQuotedPart0)
    ListPlusOfDoubleQuotedPart0 -> <conc>(ListPlusOfDoubleQuotedPart0,ListStarOfDoubleQuotedPart0)
    ListPlusOfDoubleQuotedPart0 -> <conc>(ListPlusOfDoubleQuotedPart0,ListPlusOfDoubleQuotedPart0)
    ListPlusOfDoubleQuotedPart0 -> <cons>(DoubleQuotedPart,ListStarOfDoubleQuotedPart0)
    ListStarOfCharDataPart0     -> ListPlusOfCharDataPart0
    ListStarOfCharDataPart0     -> <nil>()
    ListStarOfCharDataPart0     -> <conc>(ListStarOfCharDataPart0,ListStarOfCharDataPart0)
    ListPlusOfCharDataPart0     -> <conc>(ListStarOfCharDataPart0,ListPlusOfCharDataPart0)
    ListPlusOfCharDataPart0     -> <conc>(ListPlusOfCharDataPart0,ListStarOfCharDataPart0)
    ListPlusOfCharDataPart0     -> <conc>(ListPlusOfCharDataPart0,ListPlusOfCharDataPart0)
    ListPlusOfCharDataPart0     -> <cons>(CharDataPart,ListStarOfCharDataPart0)
    ListStarOfMisc0             -> ListPlusOfMisc0
    ListStarOfMisc0             -> <nil>()
    ListStarOfMisc0             -> <conc>(ListStarOfMisc0,ListStarOfMisc0)
    ListPlusOfMisc0             -> <conc>(ListStarOfMisc0,ListPlusOfMisc0)
    ListPlusOfMisc0             -> <conc>(ListPlusOfMisc0,ListStarOfMisc0)
    ListPlusOfMisc0             -> <conc>(ListPlusOfMisc0,ListPlusOfMisc0)
    ListPlusOfMisc0             -> <cons>(Misc,ListStarOfMisc0)
    OptStandaloneDecl0          -> <some>(StandaloneDecl)
    OptStandaloneDecl0          -> <none>()
    OptEncodingDecl0            -> <some>(EncodingDecl)
    OptEncodingDecl0            -> <none>()
    OptDocTypePrologue0         -> <some>(DocTypePrologue)
    OptDocTypePrologue0         -> <none>()
    OptXMLDecl0                 -> <some>(XMLDecl)
    OptXMLDecl0                 -> <none>()
    ListStarOfPubIDChar0        -> <string>
    ListPlusOfPubIDChar0        -> <string>
    OptQualifier0               -> <some>(Qualifier)
    OptQualifier0               -> <none>()
    Element                     -> Element(QName,ListStarOfAttribute0,ListStarOfContent0,QName)
    Content                     -> CDataSection
    Content                     -> CharData
    Content                     -> PI
    Content                     -> Comment(Comment)
    Content                     -> Element
    Element                     -> EmptyElement(QName,ListStarOfAttribute0)
    Document                    -> Document(Prologue,Element,Epilogue)
    SingleQuotedText            -> <string>
    DoubleQuotedText            -> <string>
    SingleQuotedPart            -> Ref
    DoubleQuotedPart            -> Ref
    FooSingleQuotedText         -> <string>
    FooDoubleQuotedText         -> <string>
    SingleQuotedPart            -> Literal(FooSingleQuotedText)
    DoubleQuotedPart            -> Literal(FooDoubleQuotedText)
    AttValue                    -> SingleQuoted(ListStarOfSingleQuotedPart0)
    AttValue                    -> DoubleQuoted(ListStarOfDoubleQuotedPart0)
    Attribute                   -> Attribute(QName,AttValue)
    Ref                         -> EntityRef
    Ref                         -> CharRef
    CharRef                     -> HexCharRef
    CharRef                     -> DecCharRef
    TwoCloseBrackets            -> <string>
    CloseBracket                -> <string>
    CData                       -> <string>
    HexConst                    -> <string>
    NatConst                    -> <string>
    EntityRef                   -> EntityRef(<string>)
    HexCharRef                  -> HexCharRef(<string>)
    DecCharRef                  -> DecCharRef(<string>)
    CharDataText                -> <string>
    FooCharDataText             -> <string>
    CharDataPart                -> CDATASection(<string>)
    CharDataPart                -> Ref
    CharDataPart                -> Literal(FooCharDataText)
    CharData                    -> Text(ListPlusOfCharDataPart0)
    DocTypeDecl                 -> DocTypeDecl(QName,ExternalID)
    DocTypePrologue             -> DocTypePrologue(DocTypeDecl,ListStarOfMisc0)
    VersionValue                -> VersionSingle(VersionNum)
    VersionValue                -> Version(VersionNum)
    EncodingValue               -> EncodingSingle(EncodingName)
    EncodingValue               -> Encoding(EncodingName)
    StandaloneValue             -> StandaloneSingle(YesNo)
    StandaloneValue             -> Standalone(YesNo)
    EncodingDecl                -> EncodingDecl(EncodingValue)
    VersionInfo                 -> VersionDecl(VersionValue)
    StandaloneDecl              -> StandaloneDecl(StandaloneValue)
    XMLDecl                     -> XMLDecl(VersionInfo,OptEncodingDecl0,OptStandaloneDecl0)
    Misc                        -> PI
    Misc                        -> Comment(Comment)
    Epilogue                    -> Epilogue(ListStarOfMisc0)
    Prologue                    -> Prologue(OptXMLDecl0,ListStarOfMisc0,OptDocTypePrologue0)
    PublicID                    -> PublicID(PublicLit)
    ExternalID                  -> PublicExternalID(PublicLit,SystemLit)
    ExternalID                  -> SystemExternalID(SystemLit)
    PI                          -> PI(PITarget,PIChars)
    WhiteSpaceChar              -> <string>
    YesNo                       -> <string>
    EncodingName                -> <string>
    VersionNum                  -> <string>
    PubIDChar                   -> <string>
    PublicLit                   -> <string>
    SystemLit                   -> <string>
    PIChars                     -> <string>
    PITarget                    -> <string>
    Qualifier                   -> Prefix(NCName)
    QName                       -> QName(OptQualifier0,NCName)
    NCName                      -> <string>
    Dash                        -> <string>
    Comment                     -> <string>
