题目说明:
"Tokenize" "标记化"
标记器预先配置为识别数字和符号 '+'。
请配置标记器以额外识别符号减号 '-' 和括号 '(' 和 ')'。
您可以编辑源代码区域中的代码以测试它的标记化。
level help
我们将构建一种高级编程语言。
高级语言具有更加人性化和灵活的语法,
然后被编译成机器码指令。
例如,高级代码 2 + 2 可以被编译成低级代码:
PUSH_VALUE 2
PUSH_VALUE 2
ADD
编译过程分为三个阶段:
(1)标记化(Tokenization)
(2)解析(Parsing)
(3)代码生成(Code generation)
第一步,标记化,将文本分解为表示数字、
关键字和符号的单元(称为标记)。
Token definitions 标记定义
指定将源代码字符分隔为标记的规则。
精确匹配:与“匹配”下指定的精确文本相匹配。
可以在同一个框中指定多个精确匹配,用空格分隔。
模式:可以使用方括号中的字符组和量词 * 和 +。
例如:[e-9] 匹配十进制数字,[e-9]+ 匹配一个或多个数字。
语法属性指定了标记在后续语法中的引用方式:
忽略:模式会被标记器跳过。例如,用于空格和注释的模式。
名称:模式在语法中用指定的名称表示。
文字:匹配在语法中用文字文本表示。
源代码中任何不符合以上规则的字符都将生成错误。
Source code 源代码
Source code - input to the compiler,
Will be tokenized according to the specifications above
源代码 - 编译器的输入,将根据上述规格进行标记化处理
Tokens 标记
Tokens generated by the token definitions.
由标记定义生成的标记。
本关只要定义语法能无歧义解析自己随便写的代码即可
建议采用c语言语法
实际还可以加更多语法定义。
例如以下就加了=和变量定义