2017-02-19 1 views
2

Ich muss eine Zeichenfolge basierend auf ein paar Regeln in Ruby Tokenize.Token einer Zeichenfolge in Ruby?

Grundsätzlich muss ich die Datei in Abschnitte gruppieren, die entweder einen Variablennamen, Schlüsselwort, Integer oder Operation passen.

So zum Beispiel der Datei:

x: = 5; wenn x> 5 dann x: = 3; sonst x: = 6; Ende

würde tokenize zu:

variable name (x) 
assignment operator (:=) 
integer (5) 
keyword (if) 
keyword (;) 
variable name (x) 
relation operator (>) 
integer (5) 
keyword (then) 
variable name (x) 
assignment operator (:=) 
integer (3) 
keyword (;) 
keyword (else) 
variable name (x) 
assignment operator (:=) 
integer (6) 
keyword (;) 
keyword (end) 

ich nicht wirklich verstehen, wie diese Zeichenfolge auf diese Weise zu analysieren. Kann mir jemand in die richtige Richtung zeigen?

Sobald ich weiß, wie man die Zeichenfolge in Token, kann ich dann verwenden, um tatsächliche Token aus ihnen zu machen und sie analysieren. Aber zuerst muss ich verstehen, wie man die Schnur verdaut.

Danke!

Antwort

1

Suchen Sie zuerst nach allen bekannten Schlüsselwörtern und Operatoren. Mit ihnen identifiziert, sollten nur Variablen und ganze Zahlen bleiben.

Sie können feststellen, ob der Bezeichner eine ganze Zahl ist, indem Sie versuchen, ihn in einen zu konvertieren. !!Integer(identifier) rescue false

Wenn dies false zurückgibt, müssen Sie davon ausgehen, dass es sich um eine Variable handelt.

Verwandte Themen