DTD Grammatik in Java umsetzen?

Saxer

Mitglied
Hallo,

ich habe ein Problem und komme einfach nicht weiter.
Wie kann ich denn eine Grammatik in Java umsetzen?
Wie z.B.: '(' S? cp ( S? '|' S? cp )+ S? ')'

ich weiss dass die zeichen in '' sicher vorkommen muessen aber was ist mit den zeichen mit den ?, welche ja nur vielleicht vorkommen.
Wie frage ich es ab ob ein Zeichen "vielleicht" vorkommt?


Danke!
 
Danke fuer deine Antwort.

Seh ich das richtig dass ich dem JavaCC tool meine Grammatik uebergebe und dieses mir eine Java Klasse mit meinem Parser zurueckgibt?
Waere ja super.
Kannst du mir eventuell sagen wie ich dem JavaCC tool der ersten Website meine Grammatik uebergebe und wie diese aussehen muss?

Dankeschoen
 
Danke fuer deine Antwort.
Seh ich das richtig dass ich dem JavaCC tool meine Grammatik uebergebe und dieses mir eine Java Klasse mit meinem Parser zurueckgibt?

Ja so in etwa. JavaCC ist ein Compiler, der eine eigene Metasprache in eine (bzw. mehrere) Javaklassen kompiliert.
Statements aus ner Grammatik sehen dann so aus:
Java:
void statement() : {}
{
    disjunction()(
    <OROPERATOR>
    disjunction())*    
}
Das würde dann Statement --> Disjunction ("or" Disjunction)* in EBNF entsprechen. Das ganze ist recht gut auf dieser Seite erklärt.
Wenn du Eclipse benutzt würde ich dir dieses Plugin ans Herz legen. Das erspart zumindest schon mal ein paar Zeilen Code und macht das Erstellen leichter.

Ich hoffe das hilft dir weiter.

Grüße
Daniel
 
Zurück