在Ruby中对字符串进行标记?

时间:2017-02-19 20:25:52

标签: ruby parsing token

我需要根据Ruby中的一些规则来标记字符串。

基本上,我需要将文件分组为适合变量名,关键字,整数或操作的部分。

因此,例如,文件:

  

x:= 5;如果x> 5然后x:= 3;别的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 个答案:

答案 0 :(得分:1)

首先,搜索所有已知的关键字和运算符。确定它们后,只保留变量和整数。

您可以通过尝试将标识符转换为一个标识符来确定标识符是否为整数。 !!Integer(identifier) rescue false

如果返回false,则必须假定它是变量。