Hallo GeorgeWNewbie,
der Einsatz einer kontextfreien Grammatik scheint mir für das blose Auffinden der Textpassagen etwas übertrieben, der reguläre Ausdruck für die von mir oben beschriebene Syntax inkl Arrays mit Zahlen als Indizes lautet schlicht
und kann dank eines Wrappers mit Referenzzählung in einer einfachen Schleife der Form
Delphi-Quellcode:
with RegExp('\$(\w+)(\[(\d+)\])?') do
if Execute(AnInput) do
repeat
DoSthWidth(AnInput, MatchPos[0], MatchLen[0]);
until not ExecuteNext;
angewendet werden...
Das Problem mit den benannten Identifiern ist damit aber nach wie vor nicht gelöst. Ich müsste einen entsprechenden Container selbst verwalten (zuvor jedoch eine geeignete Lösung zur Erzeugung dieser Information erarbeiten), die Bezeichnungen parsen...
Trotzdem, Danke! Wenn Du Dich für Grammatiken und Parsern für Delphi interssierst, ist vielleicht der
GOLD parser eine gute Lösung...