gpt4 book ai didi

python - 用python解析netlogo代码

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:02 27 4
gpt4 key购买 nike

我有一些由 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-left(self, )
### turns the agent 90 degrees to the left

我正在努力解决的是如何实际处理程序...我主要担心的是 ifelse 语句中可能有另一个 ifelse,我不知道如何翻译它...

有人能指出我正确的方向吗?

最佳答案

NetLogo 就其全部通用性而言是一种相当难以解析的语言。 (这是我们真正的解析器: https://github.com/NetLogo/NetLogo/blob/5.0.x/src/main/org/nlogo/compiler/ExpressionParser.scala ;Repast 的人在构建 ReLogo 的 NetLogo 模型转换器时也写了一个,显然是使用 ANTLR, here 。)

您需要支持的 NetLogo 子集有多大或多小?

如果你的目标子集足够小,那么这主要是一个关于如何在 Python 中进行解析的问题。我不是 Pythonista,所以我不是回答这个问题的最佳人选。

如果你的目标子集足够大,你最好编写Python代码来启动JVM并直接调用NetLogo解析器,这样你就不必编写自己的解析器,但可以只需编写处理已解析语法树的 Python 代码即可。请参阅我的帖子 https://groups.google.com/d/msg/netlogo-devel/mDBskQMboYs/MycJtLh32S0J有关于此的一些信息。

关于python - 用python解析netlogo代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22848438/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com