【发布时间】:2014-05-10 16:53:32
【问题描述】:
我正在用 C++ 编写一个手工制作的词法分析器和一个解析器。我编写词法分析器的方式是,如果它找到例如 ;,它会打印 "SEMICOLON",如果它找到 while,它会打印 "KEYWORD" ,如果找到hello,它会打印 "IDENTIFIER" 等。但是现在我需要将这些标记传递给解析器。例如,如何使用列表来做到这一点?而且发现需要存储token类型和token值
【问题讨论】:
-
你能证明你的努力吗?
-
我写了整个词法分析器,它的输出很好.....我只需要知道如何将标记传递给解析器
-
通常你想设计一些东西,以便解析器从词法分析器拉数据。例如,这可以通过在 lexer 对象上调用
get_next_token()方法来实现。 -
@j_random_hacker
get_next_token(Token * tok),是这样的吗?我的意思是这个函数会填充传入的Token对象的所有字段,包括token的类型(也可以说token的种类,token的值,比如标识符的字符串)。 -
@ollydbg23:当然,这对我来说是一种实用的方法。