2017-02-19 111 views
2

我需要根據Ruby中的一些規則來標記字符串。在Ruby中令牌化字符串?

基本上,我需要將文件分組爲適合變量名稱,關鍵字,整數或操作的部分。

因此,例如,該文件:

X:= 5;如果x> 5,則x:= 3; else x:= 6;結束

將令牌化到:

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) 

我真的不知道如何解析這個字符串的方式。任何人都可以將我指向正確的方向嗎?

一旦我知道如何標記字符串,我就可以用它來製作實際的標記並解析它們。但首先我需要了解如何消化字符串。

謝謝!

回答

1

首先,搜索所有已知的關鍵字和運算符。隨着他們確定,只有變量和整數應該保持。

您可以通過嘗試將標識符轉換爲一個來確定標識符是否爲整數。 !!Integer(identifier) rescue false

如果這返回false,則必須假定它是一個變量。