Vorausschau puffern

Top  Previous  Next

Bedienung > Hauptmenü > Menü: Einstellungen > Projekteinstellungen > Parser/Scanner > Globaler Scanner > Vorausschau puffern

 

Durch Pufferung der Vorausschau-Token kann das Parsen beschleunigt werden, wenn Vorausschau-Produktionen verwendet werden. Wird in einer Produktion zunächst eine Vorausschau getestet, so werden die dabei ermittelten Token auf einen Stack gelegt und von dort wieder ausgelesen, wenn die ursprüngliche Produktion weiter ausgeführt wird.

 

Beispiel:

 

Prod1 ::= IF( Prod2() ) "a" "b" ...

Prod2 ::= "a" "b"

 

Bei erfolgreichem Test von Prod2 sind die Token "a" und "b" bereits aus dem Text heraus gelesen.

 

Damit dieses Verfahren funktionieren kann, müssen einige Einschränkungen der sonst vorhandenen Möglichkeiten in Kauf genommen werden. Folgendes geht dann z.B. nicht mehr:

 

Prod1 ::= IF( Prod2() ) ID+ ...

Prod2 ::= "a" "b"

 

Oft ist zu empfehlen, anstelle von SKIP ist ANY zu verwenden. Eine mit ANY+ in einer Vorausschau erkannte Tokenfolge, wird beim Auslesen des Stack korrekt als Folge der spezifischen Token reproduziert, die jeweils unter ANY subsumiert wurden.

 

In den semantischen Aktionen kann nicht auf Unterausdrücke der vom Stack geholten Token zugegriffen werden. Einschlüsse können nicht in Kombination mit dem Vorausschau-Puffer verwendet werden.

 

 

 

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English