0

当我想测试我的 EBNF 语法时,我遇到了错误:

AttributeError:“元组”对象没有属性“asjson”

代码 :

if not filename or filename == '-':
    text = sys.stdin.read()
else:
    with open(filename) as f:
        text = f.read()

grammarname = 'grammars/CTEST.ebnf'
grammarData = open(grammarname).read()
parser = tatsu.compile(grammarData, asmodel=True)

model = parser.parse(text)
print()
print('# MODEL TYPE IS:', type(model).__name__)
print(json.dumps(model.asjson(), indent=4))
print()

如何验证我的语法文件?

4

1 回答 1

0

这完全取决于parser.parse返回的内容。它可能返回多个值。

例如:return a_variable, another_variable是python中的有效语法。如果它返回多个值,它们以元组的形式出现。您应该像阅读它们一样阅读它们,model[0]或者您可以制作a, b = parser.parse(text)

于 2020-05-13T11:21:16.147 回答