FLEX / BISON reentrant & multi-grammar ... aber wie?

tbird

Moderator, Mr. Cheese
Hardwareluxx Team
Thread Starter
Mitglied seit
22.05.2002
Beiträge
10.048
Ort
FichtelMountains
Hei!

Ich suche ne kleine beschreibung oder ein beispiel (.l und .y files würden reichen), die beschreiben, wie ich einen reentrant (multithread-fähigen) parser mit mehreren enthaltenen grammatiken (aber einer engine) aufbauen kann.

gibts hier lex / yacc pros?

ich kenne mich mit den grundlagen aus, nur bekomme ich kein lauffähiges programm zu stande ... :(

danke im vorraus!

//edit: okay nach ein bissl überlegen und einem kaffee gestaltet sich das multi-grammar-problem sehr einfach, und zwar kann man ein start-symbol benennen, welches dann in die einzelnen grammatiken verzweigt ... also so zum beispiel:


%%
start: 'grammar1' g1
| 'grammar2' g2

g1: ... //regeln für grammatik 1

g2: ... //regeln für grammatik 2


da wir bei unserer anwendung beim lesen des ersten token wissen, was wir parsen wollen, ist diese lösung auch ausreichend.

nun der reentrant-teil...

dieser sollte dann ja auch nicht von der standard-eingabe, sondern von einem buffer lesen (dieser buffer muss per funktionsaufruf übergeben werden ... sonst kann ich ja nciht in mehreren threads verschiedene grammatiken und eingabeströme parsen) ...

kennt sich jetzt noch irgendjemand aus? ja? geil ... also her damit *G*
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh