在lexing阶段存储令牌的最佳方式

时间:2014-04-17 00:07:25

标签: parsing compiler-construction xml-parsing token lexer

您好我正在实施一个将XML文件分解为令牌的词法分析器,我正在考虑将令牌传递到解析器以从所述令牌创建更有用的数据结构的方法 - 我当前的计划是存储他们在arraylist中并将其传递给解析器,每个令牌指向下一个的链接列表是否更适合?或者能够通过索引访问令牌更容易制作解析器?或者这是一个可怕的策略?

此外,如果有人使用过antlr,我知道它使用令牌流将标记化输入传递给解析器,如果输入有效则解析器如何做出决策/如果没有所有令牌则创建数据结构从输入呢?

欢迎任何反馈/意见,谢谢!

1 个答案:

答案 0 :(得分:2)

此类解析器的最常见体系结构,用于在解析器中运行词法分析器。每次需要令牌时,都要调用一个函数(来自lexer)来检索下一个。

我不知道Antlr,但我认为他们都使用相同的。我提出的是yacc和lex是如何工作的。