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),否则为Nonecond_value:条件表达式的值或剩余迭代次数success:如果操作失败或循环无限重复,则返回False
错误
ExecutorSyntaxException:如果传入的程序有无效语法,则发生ExecutorRuntimeException:如果传入的程序在执行时出错且传递了record_trace=False,则发生
项目详情
关闭
karel-for-synthesis-1.4.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a536c531121f341799dd377e6214c7b4915e001eae7211352cc2d8de44ddaa19 |
|
| MD5 | 209710d85ab9f427647489d70da85d1a |
|
| BLAKE2b-256 | 01b43033b3f26df178e7843ba15ff681e917d41724d29eeb49d741ce0f1eaad6 |