Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在antlr4 python目标中重用lexer对象_Python_Antlr_Antlr4 - Fatal编程技术网

在antlr4 python目标中重用lexer对象

在antlr4 python目标中重用lexer对象,python,antlr,antlr4,Python,Antlr,Antlr4,我有一个简单的antlr4 lexer,下面的脚本可以工作 lexer = MyLexer(InputStream(argv[1])) stream = CommonTokenStream(lexer) parser = MyParser(stream) tree = parser.query() v = MyVisitor() v.visit(tree) 但是我想知道是否可以重用MyLexer类对象 如果是,如何重新设置输入字符串 可以

我有一个简单的antlr4 lexer,下面的脚本可以工作

    lexer  = MyLexer(InputStream(argv[1]))
    stream = CommonTokenStream(lexer)
    parser = MyParser(stream)
    tree   = parser.query()

    v = MyVisitor()
    v.visit(tree)
但是我想知道是否可以重用
MyLexer
类对象


如果是,如何重新设置输入字符串

可以通过
lexer.setInputStream()
在lexer中设置输入流(甚至可以与以前相同)。然后还可以通过
parser.setTokenSource()
在解析器中重新设置lexer(也可以相同)。最后调用
stream.reset()
parser.reset()
,如果您也重复使用它们的话

仅供参考:如果你想重新使用输入流,你可以调用
input.load(text)
来加载新的输入