xml-grammatik umformen



  • Hallo,

    soll folgende XML-Grammatik umformen: (damit sie später in einen recursiv-descent-parser passt)

    element → emptytag | starttag content endtag
    starttag → < name (sep+ attribute)* sep? >
    attribute → name = attrvalue
    endtag → </ name >
    content → (chardata | element)*
    emptytag → < name (sep+ attribute)* sep? />
    attrvalue → ' data '
    name → letter | name letter | name digit
    letter → a | b | ... | z | -
    digit → 0 | 1 | ... | 9
    sep → blank | cr

    und zwar mit folgenden Regeln:

    A → u* bedeutet A → ε | uA
    A → u+ bedeutet A → u | uA
    A → u? bedeutet A → ε | u

    neue Nichtterminalsymbole können eingeführt werden.

    Außerdem hat die Produktion für element zwei alternativen. Der Parser kann nicht unterscheiden, welche Alternative er anwenden soll, denn emtytag und starttag beginnen gleich. Es soll ein neues Nichtterminalsymbol für den gemeinsamen Anfang eingeführt werden und die Produktionen für element entsprechend umgeformt werden.

    Hat jemand ne idee?

    thx i.A.


Anmelden zum Antworten