Thread Starter
- Mitglied seit
- 22.05.2002
- Beiträge
- 10.048
- Ort
- FichtelMountains
- Desktop System
- Dual Xeon Workstation
- Laptop
- HP ZBook G3
- Prozessor
- 2x E5 2690v4 (24 Cores / 48 Threads)
- Mainboard
- Huananzhi X99 F8D
- Kühler
- 2x AlphaCool Mirage 5
- Speicher
- 256GB DDR4 2400 ECC Reg
- Grafikprozessor
- Zotac RTX 3080 OC 12GB
- Display
- 27" + 24"
- SSD
- 1TB NVMe
- HDD
- 2TB SATA
- Opt. Laufwerk
- keins
- Soundkarte
- Xenyx Q802 USB
- Gehäuse
- Fractal Designs Torrent
- Netzteil
- BeQuiet Dark Power 12 1kW
- Keyboard
- Razer Deathstalker Ultimate
- Mouse
- Steelseries Sensei
- Betriebssystem
- Windows 10 Workstation
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*
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: