2011-08-15 29 views
13

我發現(在StackOverflow上的另一個問題之後)這個用Python編寫的有趣的庫,其目標是語法分析。Python metaclass和ModGrammar

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

回答

17
class Grammar(metaclass=GrammarClass) 

正在使用Python3語法。等效Python2語法將

class Grammar(object): 
    __metaclass__=GrammarClass 

,但因爲可能有很多其他Python3-主義的,你可能需要使用Python3使用modgrammar

+0

非常感謝!愚蠢的是,我沒有想到問題出現在Python版本上! :) – Dario

相關問題