Path: | A2_patterns2.rb |
Last Update: | Wed Feb 15 12:40:47 Westeuropäische Normalzeit 2006 |
Dieses Programm stellt zwei Funktionen zur Verfügung, die einen String in der Sprache der arithmetischen Ausdrücke in seine Bestandteile zerlegen bzw. ihren Tokenklassen zuordnen. Diese Funktionen werden an folgendem Beispiel getestet:
r20 := r2 : r2:2
Author: | Markus Marx, Sebastian Betz |
Die Methode "bestimme" scant einen String von Anfang bis Ende und ordnet sie den Tokenklassen zu. Diese Klassen sind in einem Array und einem Hash-Set als reguläre Ausdrücke gespeichert. Die Ordnung des Token-Array ergibt gleichzeitig auch die Priorität der Tokens. Hier also in absteigender Reihenfolge: op, zahl, reg, bez (d.h. Bezeichner haben die niedrigste Priorität).
Das Hash-Set wird nur verwendet, weil der Programmtext leichter verständlich ist, als bei einem mehr dimensionalen Array.
Die Zuordnung zu den einzelnen Tokens: Dazu wird die Eingabe zunächst zerlegt. Danach werden die Tokens in der entsprechend durch Prioroitäten festgelegten Reihenfolge auf die Bestandteile angewendet. Sobald ein Treffer gefunden ist, wird dieser mit Name und Token ausgegeben.
Diese Methode zerlegt einen Eingabestring in seine Bestandteile, die durch Ruby-Patterns gegeben sind Allerdings werden die einzelnen Teile nicht den Tokenklassen zugeordnet, sondern nur in ein Array ge schrieben, welches von der Methode dann zurückgegeben wird. Die Patterns sind: