我发现(在StackOverflow上的另一个问题之后)这个用Python编写的有趣库,其目标是语法解析。
http://code.google.com/p/modgrammar/
我也找到了关于它的教程:
http://packages.python.org/modgrammar/tutorial.html
所以,在阅读完所有教程后,我明白这就是我在寻找的东西!我试着在教程中编写第一个例子:
from modgrammar import *
class MyGrammar (Grammar):
grammar = (LITERAL("Hello,"), LITERAL("world!"))
但我遇到了这个错误:
Traceback (most recent call last):
File "test.py", line 1, in <module>
from modgrammar import *
File "/Users/tesi/Desktop/Prova/modgrammar/__init__.py", line 503
class Grammar(metaclass=GrammarClass):
^
SyntaxError: invalid syntax
问题似乎出现在元类声明中。当我调用python解释器时,我可能需要添加一个“编译标志”吗?一些好消息?! :) Thx
答案 0 :(得分:18)
class Grammar(metaclass=GrammarClass)
正在使用Python3语法。等效的Python2语法是
class Grammar(object):
__metaclass__=GrammarClass
但由于可能存在许多其他Python3主义,您可能必须使用Python3来使用modgrammar
。
答案 1 :(得分:4)
我已将modgrammar反向移植到Python 2.6+。 Backport也适用于Python 3.x.您可以在此处找到它:https://github.com/don-ramon/modgrammar-py2。
答案 2 :(得分:1)
是的,这是Python3库http://code.google.com/p/modgrammar/source/browse/setup.py#32
Python2x不支持class Grammar(metaclass=GrammarClass)