Karel解析器和执行器,适用于程序合成。
项目描述
为合成而设计的karel
基于Nearai的代码(进行了一些修改)的Karel解析器和执行器。
用法
要使用执行器,请运行
from karel_for_synthesis import execute
result = execute(program, input_grid, record_trace=True)
您还可以通过使用parse
和unparse
命令来解析和反解析程序。
输出
这将返回一个ExecutionResult
对象,其结构如下
ExecutionResult
.result
:输出网格,或如果出现错误则返回None
.trace
:输出跟踪。如果传递了record_trace=False
,则返回None
.grids
:程序执行中的每个时间步长的网格.events
:一系列KarelEvent
对象.timestep
:grids[timestep]
对应于此时间步后的网格type
:正在执行的令牌span
:对应于此块的第一个和最后一个令牌的(i, j)
cond_span
:如果存在条件表达式,则包含在其中的第一个和最后一个令牌的(i, j)
,否则为None
cond_value
:条件表达式的值或剩余迭代次数success
:如果操作失败或循环无限重复,则返回False
错误
ExecutorSyntaxException
:如果传入的程序有无效语法,则发生ExecutorRuntimeException
:如果传入的程序在执行时出错且传递了record_trace=False
,则发生
项目详情
关闭
karel-for-synthesis-1.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a536c531121f341799dd377e6214c7b4915e001eae7211352cc2d8de44ddaa19 |
|
MD5 | 209710d85ab9f427647489d70da85d1a |
|
BLAKE2b-256 | 01b43033b3f26df178e7843ba15ff681e917d41724d29eeb49d741ce0f1eaad6 |