3

我一直在搞乱 ZOMBIE 深奥的语言,而我一直在使用的解释器正在抛出一些错误。

解释器在这里: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

终端说——

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\.]+')

对不起,我不能更具体......任何帮助将不胜感激。

4

1 回答 1

3

它对我来说很好:

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

我直接从您为解释器发布的链接中复制了解释器的源代码,并将其保存zombie.py在当前目录中(~/temp尽管这无关紧要)。然后我直接从您的帖子中复制了僵尸HelloWorld程序的源代码并将其保存为zombie.z(再次在当前目录中)。它打印出来Hello World!,因为我假设它应该......

(python2.7, Mac OS X 10.5.8)

SyntaxError 使我相信您正在尝试zombie.z直接从 python 运行(或您所称的任何内容),例如python zombie.z或类似的东西......那是行不通的。


顺便说一句,我认为我和您上一个问题的海报(独立地)选择.z作为zombie源文件的扩展名很有趣。应该是自然而然的选择...

于 2013-01-04T01:42:26.927 回答