我正在尝试使用在函数规则中进行全局环境查找的语法来编译模块。当我尝试使用 Java 后端编译我的模块时,我收到错误Conversion of KAs unsupported on Java backend!
(_0,
(I),_1) #as #Configuration
,可能与脱糖有关(尽管pending-documentation
状态“这完全被 K 前端脱糖并且不需要后端的任何特殊支持。”...但由于它待定,我知道它可能并不总是完全准确)。
所以我尝试了 Haskell 后端。这也给了我一个关于 using 的错误#isConcrete
,我注意到它被记录为 Haskell 后端不支持......但我没有使用#isConcrete
. 但是,我发现如果我从使用的配置中删除单元格stdout
,那么我将不再收到此错误。
是否可以同时使用这种语法并拥有stdout
?理想情况下,我可以继续使用 Java 后端,因为这是我遇到的问题最少的地方。
下面是一个产生错误的简单示例:
module TEST-SYNTAX
imports DOMAINS-SYNTAX
syntax Prog ::= run(Int)
endmodule
module TEST
imports TEST-SYNTAX
imports DOMAINS
syntax KResult
configuration
<k> $PGM:Prog </k>
<bar> 6 </bar>
<log stream="stdout"> .List </log>
syntax Int ::= foo(Int) [function]
rule [[ foo(0) => I ]]
<bar> I </bar>
rule run(I) => foo(I)
endmodule
程序很简单run(0)
。