跳转到主要内容

Karel解析器和执行器,适用于程序合成。

项目描述

为合成而设计的karel

基于Nearai的代码(进行了一些修改)的Karel解析器和执行器。

用法

要使用执行器,请运行

from karel_for_synthesis import execute

result = execute(program, input_grid, record_trace=True)

您还可以通过使用parseunparse命令来解析和反解析程序。

输出

这将返回一个ExecutionResult对象,其结构如下

  • ExecutionResult
    • .result:输出网格,或如果出现错误则返回None
    • .trace:输出跟踪。如果传递了record_trace=False,则返回None
      • .grids:程序执行中的每个时间步长的网格
      • .events:一系列KarelEvent对象
        • .timestepgrids[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 (40.1 kB 查看哈希值)

上传时间