ruby - 在 Ruby 中标记字符串?

标签 ruby parsing token

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

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

例如,文件:

x:=5;if x > 5 then x:=3; else x:=6; end

将标记化为:

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)

我真的不明白如何以这种方式解析这个字符串。谁能指出我正确的方向?

一旦我知道如何标记字符串,我就可以使用它来从中生成实际标记并解析它们。但首先我需要了解如何消化字符串。

谢谢!

最佳答案

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

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

如果返回 false,您必须假设它是一个变量。

关于ruby - 在 Ruby 中标记字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42332477/

相关文章:

ruby - 仅当非零时才赋值

ruby-on-rails - 在不同版本的两个 Rails 应用程序之间共享设计 session cookie

parsing - 语法、堆栈、终端符号和标记

c - 如何区分 '-' 运算符和分词器的负数

ruby - 线程池中的死锁

ruby - `gets.chomp.downcase!` 获取空字符串错误

Python 命令参数

java - 如何使用 Jongo 将项目添加到 Mongo 数组?

ios - 解析节点内包含换行符的 xml

c - strtok() 的问题