用python解析netlogo代码
我有一些代码是由netlogo模拟生成的,我需要读入这些代码并用Python进行解析。然后需要在非常特定的模拟中运行代码,该模拟将编写与netlogo代码匹配的函数 例如:用python解析netlogo代码,python,parsing,netlogo,Python,Parsing,Netlogo,我有一些代码是由netlogo模拟生成的,我需要读入这些代码并用Python进行解析。然后需要在非常特定的模拟中运行代码,该模拟将编写与netlogo代码匹配的函数 例如: netlogoCode = "ifelse ahead-clear [ move ][ turn-left move ]" def ahead-cear(self, ) ### returns true if the environment ahead of the agent is clear def turn-l
netlogoCode = "ifelse ahead-clear [ move ][ turn-left move ]"
def ahead-cear(self, )
### returns true if the environment ahead of the agent is clear
def turn-left(self, )
### turns the agent 90 degrees to the left
我正在努力想的是如何实际处理程序。。。我主要担心的是ifelse语句中可能包含另一个ifelse,我不知道如何翻译它
谁能给我指一下正确的方向吗 NetLogo的通用性是一种很难解析的语言。(这是我们真正的解析器:;当他们构建ReLogo的NetLogo模型转换器时,Repast人员也编写了一个解析器,显然是使用ANTLR编写的。) 您需要支持的NetLogo子集有多大或多小 如果目标子集足够小,那么这主要是关于如何在Python中进行解析的问题。我不是Pythonista,所以我不是回答这个问题的最佳人选
如果目标子集足够大,那么最好编写启动JVM并直接调用NetLogo解析器的Python代码,这样就不必编写自己的解析器,只需编写处理已解析语法树的Python代码即可。有关这方面的信息,请参阅我的帖子。嗨,赛斯,谢谢你的评论!真的很有帮助。。。我实际上只是在分析ifelse[]]和while语句。我已经决定了最好的方法可能只是做一个字符串替换。