Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dynamische Token

0 views
Skip to first unread message

Robert Pollai

unread,
Jul 4, 2002, 8:13:30 AM7/4/02
to
Hallo Allerseits,

ich weiss zwar nicht ob hier noch jemand liest, aber ich probiers
einmal.

Ich würde gerne einen Parser für EDIFACT bauen. Das Problem an dem ich
scheitere ist, dass in EDIFACT die diversen Trenn- und Sonderzeichen
(also ein Teil der Token die bei der lexikalischen Analyse
zurückkommen) dynamisch definiert werden. D. h. irgendwo in dem
EDIFACT ist ein Header drinnen der sie definiert.

Was für Möglichkeiten gibt es sowas mit den gängigen Parsergeneratoren
zu lösen?

Im Prinzip suche ich eine Möglichkeiten die Regular Expressions
dynamisch zu definieren oder Variablen innerhalb der Regular
Expressions zu definieren.

Hat jemand Ideen zu diesem Problem? :-)

Grüße, Robert

Anton Ertl

unread,
Jul 4, 2002, 3:12:38 AM7/4/02
to
rober...@blackbox.net (Robert Pollai) writes:
>Hallo Allerseits,
>
>ich weiss zwar nicht ob hier noch jemand liest, aber ich probiers
>einmal.
>
>Ich würde gerne einen Parser für EDIFACT bauen. Das Problem an dem ich
>scheitere ist, dass in EDIFACT die diversen Trenn- und Sonderzeichen
>(also ein Teil der Token die bei der lexikalischen Analyse
>zurückkommen) dynamisch definiert werden. D. h. irgendwo in dem
>EDIFACT ist ein Header drinnen der sie definiert.
>
>Was für Möglichkeiten gibt es sowas mit den gängigen Parsergeneratoren
>zu lösen?

Das betrifft fuer's erste nur den Scanner, also sollte der
Parsergenerator kein direktes Problem damit haben.

Mit den ueblichen Scannergeneratoren (z.B. flex) geht's wohl nicht,
also musst Du wohl einen suchen, der das kann (ich kenne keinen), oder
den Scanner von Hand schreiben (ist nicht schwierig, manche Leute
ziehen das der Benutzung eines Scannergenerators vor). Inwieweit das
dynamische Erweitern des Scanners diese Aufgabe kompliziert, haengt
von der Art ab, wie Erweiterungen spezifiziert werden.

Wenn diese Scannererweiterungen nur neue Lexeme
(Eingabe-Scanner-Interface) fuer die gleichen Tokens
(Scanner-Parser-Interface) definiert, ist wirklich nur der Scanner
betroffen, wenn dagegen auch fuer den Parser neue Dinge dazukommen,
ist es komplizierter.

- anton
--
M. Anton Ertl Some things have to be seen to be believed
an...@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html

Robert Pollai

unread,
Jul 5, 2002, 3:08:47 AM7/5/02
to
Hallo,

einmal danke für die Antwort.

Wir haben uns das mit dem eigenen Scanner schreiben auch überlegt,
inzwischen haben wir aber eine einfachere Lösung gewählt, wir haben
einen Preprozessor geschrieben der die Daten auf Standard-Trennzeichen
normiert. War zwar ein bißchen umständlich (Escape-Character und
Trennzeichen im Text etc.) aber sicher noch einfacher, als den
kompletten Scanner zu schreiben.

Grüße, Robert

0 new messages