【发布时间】:2021-09-08 00:38:26
【问题描述】:
我正在为一个项目实施 Lexer,但对它应该如何将令牌返回给解析器感到困惑。词法分析器是否应该在声明时急切地准备一个令牌列表以提供给解析器,或者解析器是否应该调用一个函数来懒惰地即时返回下一个令牌?还有,像 lex/flex 这样的工具是怎么做的呢?
【问题讨论】:
-
任何一种方式都有优点。不过,大多数编译器(我熟悉的)都会根据需要请求令牌 - 这允许更简单的错误报告,因为令牌不需要存储源代码位置信息等等。
标签: compiler-construction lexer