我尽了最大努力包含所有(并且仅)需要的信息。让我知道如果看到更多可以帮助你帮助我。
我的正则表达式有问题。我的程序打印到一个 .txt 文件 lexeme - token 对。除标识符和整数外,一切正常。例如,标识符的令牌是 262。
示例输入文件:
function main a: integer returns integer;
b: integer is a * 2;
样本输出:
function - 269
maina - 262
integer - 272
returns - 274
integer - 272
; - 59
b - 262
integer - 272
is - 271
a - 262
2 - 263
; - 59
正确的输出是:
function - 269
main - 262
a - 262
: - 58
integer - 272
returns - 274
integer - 272
; - 59
b - 262
: - 58
integer - 272
is - 271
a - 262
* - 261
2 - 263
; - 59
总而言之,它结合了由空格分隔的两个标识符,并且它还删除了标识符之后的任何标记。