2013-01-04 7 views
2

나는 ZOMBIE 난해한 언어를 계속 사용하고 있으며, 사용하고있는 통역사에서 약간의 오류가 발생하고 있습니다. 정규 표현식을 사용하는 파이썬 비전 통역자

인터프리터

은 여기에 있습니다 : http://esolangs.org/wiki/User:Marinus/ZOMBIE_interpreter

사양은 여기에 있습니다 : 나는 맥에서 터미널을 사용하고 http://www.dangermouse.net/esoteric/zombie.html

. 나는 통역 비록 안녕하세요 프로그램을 실행하면

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 (다시 현재 디렉토리에 저장)으로 저장했습니다. 내가 ...이하도록되어

(python2.7, 맥 OS X 10.5.8)를 있으리라 믿고있어 그것이

구문 에러 당신이 zombie.z를 실행하려고하고 믿고 날 리드 Hello World!를 인쇄 (또는 당신이 그것을 뭐라고하는지) 직접 파이썬에서 python zombie.z 또는 이와 비슷한 것 ... 작동하지 않습니다. AS를


옆으로, 나는 그것이 나 자신과 당신의 이전 질문에서 포스터 모두 (독립적) zombie 소스 파일의 확장으로 .z를 선택하는 것이 재미있는 것 같아요. 그냥 자연스러운 선택이어야합니다 ...

+0

당신이 맞습니다 - 통역사에서 "syn"의 두 가지 현상이 코멘트에 있습니다. –

+0

@JanDvorak - 감사합니다. 나는 "syn"이 그것과 관련이 있는지 확신 할 수는 없지만 내가 옳다고 생각한다. 설명해 줄 수 있니? – mgilson

+0

"syntaxError"와 같이 "syn" –