我使用Antlr创建了一个数据日志解析器。我不知道该怎么办。我要生成AST
Antlr生成了以下文件:
Lexer.py
Listener.py
Lexer.tokens
Parser.py
Program.tokens
我已经读完了教程。我不明白。如何在Python中测试输入:
^{pr2}$我想生成AST,以便可以使用它作为查询处理引擎。在
所以我发现,我正在编写代码来生成AST。在
import sys
import antlr4
from antlr4 import *
from NLexer import *
from NParser import *
from NListener import *
char_stream = InputStream('a(1)\n')
lexer = NLexer(char_stream )
stream = CommonTokenStream(lexer)
parser = NParser(stream)
tree = parser.XXX() . // This is where I am confused. How do I generate
tree. What function should be called here
instead of XXX?
必须调用的函数取决于要解析的内容。您可以使用解析器中生成的任何函数来解析语言的一个子部分,但对于整个语言,您通常选择顶级解析器规则(如果编写语法,您应该知道哪个是顶级规则)。在
所有解析器函数都返回一个解析树,然后可以用来查找符号或输入结构等
顺便说一句,您使用的是ANTLR4,它生成解析树,而不是抽象语法树。在
相关问题 更多 >
编程相关推荐