如何从柠檬中获取 AST(抽象语法树)的根节点?我尝试使用%extra_argument { Node *rootNode }
和使用以下代码来返回根节点对象。
program ::= statements(A). { rootNode = A; }
但是根节点主解析函数中的根节点保持为空。
这是主要的解析功能。
Node parse()
{
void* parser = ParseAlloc(malloc);
int token;
Node astRoot;
while (token = yylex())
{
Parse(parser, token, yytext, &astRoot);
}
Parse(parser, 0, NULL, &astRoot);
ParseFree(parser, free);
return astRoot;
}
任何人都可以帮忙吗?提前致谢。