【发布时间】:2017-11-21 00:36:10
【问题描述】:
我正在尝试手动编写标记器。我继续阅读可以成为令牌一部分的字符。例如整数只能包含数字。因此,在下面的文本中,我继续阅读字符,直到找到一个非数字字符。所以我得到 123 作为令牌。接下来我得到 ( 作为标记,然后是 abc 作为标识符。这很好,因为 ( 是一个分隔符。
123(abc
但是,在下面的文本中,我将 123 作为整数,然后将 abc 作为标识符。但实际上这无效,因为它们之间没有分隔符。
123abc(
标记器是否应该检查分隔符并报告错误?如果是,应该返回什么标记,在找到无效标记后标记器应该从哪里继续读取?
或者标记器是否应该简单地将 123 作为整数返回,并将 abc 作为标识符返回并让解析器检测错误?
【问题讨论】:
标签: lexical-analysis