如何从单独的文件运行解析器?

时间:2018-01-02 21:30:53

标签: python parsing yacc lex ply

我试图将解析器保存在自己的文件中,并在主文件/程序中的某些文本上调用该解析器。

我的词法分析器在其自己的文件中:MDLexer.py 我已将解析器放入其自己的文件中:MDParser.py

MDParser像这样导入MDLexer:from MDLexer import tokens

是否有类似的导入语句将我的Parser导入第三个文件?

任何帮助表示感谢。

澄清: 我尝试过以下方法:

import MDParser as p
...
parser = p.yacc.yacc()

然而,这给了我以下错误:

Traceback (most recent call last):
  File "MDtoAST.py", line 35, in <module>
    parser = p.yacc.yacc()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site packages/ply/yacc.py", line 3276, in yacc
    raise YaccError('Unable to build parser')
ply.yacc.YaccError: Unable to build parser

1 个答案:

答案 0 :(得分:2)

如果是我,我会把这一行放在MDParser.py

parser = yacc.yacc()

让我的主程序看起来像这样:

import MDParser as p
p.parser.parse('some string')