2013-01-04 66 views
2

我繼續搞亂了ZOMBIE深奧的語言,我一直在使用的解釋器會拋出一些錯誤。使用正則表達式的Python深奧解釋器

的解釋是在這裏:http://esolangs.org/wiki/User:Marinus/ZOMBIE_interpreter

該規範是在這裏:http://www.dangermouse.net/esoteric/zombie.html

我在Mac上使用終端。 當我運行Hello World程序雖然解釋,

HelloWorld is a zombie 
summon 
task SayHello 
    say "Hello World!" 
animate 
animate 

終端says-

HelloWorld is a zombie 
        ^
SyntaxError: invalid syntax 

我相信這是在解釋的語法識別正則表達式的問題,但我沒有與他們的經驗。 這是我認爲的代碼是難辭其咎:

comment_re = re.compile("\{.*?\}", re.DOTALL) 
declaration_re = re.compile(r'([A-Za-z0-9_\-]*?)\s+is\s+an?\s+(zombie|enslaved undead|' + \ 
         r'ghost|restless undead|vampire|free-willed undead' + \ 
         r'|demon|djinn)', re.I) 

task_re = re.compile("task\s+([A-Za-z0-9_-]*)", re.I) 
remember_re = re.compile("remember\s+(.*)", re.I) 

string_re = re.compile('".*?"') 
integer_re = re.compile('[\-0-9\.]+') 

對不起,我不能更具體的...任何幫助,將不勝感激。

回答

3

它工作得很好,對我來說:

temp $ python zombie.py zombie.z 
Hello World! 

我直接從您發佈的解釋,並在當前目錄下保存爲zombie.py鏈接複製interpretter源(~/temp,雖然這是不相關) 。然後,我直接從帖子中複製了殭屍HelloWorld程序的源代碼,並將其保存爲zombie.z(再次在當前目錄中)。它打印Hello World!因爲我假設它應該是...

(python2.7的Mac OS X 10.5.8)

的SyntaxError錯誤使我相信,你想運行zombie.z (或任何你稱之爲)從Python直接例如python zombie.z或類似的東西...這是行不通的。


順便說一句,我認爲這是有趣的是,我自己和從以前的問題的海報(獨立)選擇.z作爲zombie源文件的擴展名。必須是自然的選擇......

+0

你是對的 - 翻譯中只有兩個「syn」出現在註釋中。 –

+0

@JanDvorak - 謝謝。我想我也是對的,雖然我不確定什麼「syn」與它有關......你能解釋一下嗎? – mgilson

+0

「syn」in「syntaxError」 –