[ { "Primitive" : { "name" : "Clash.Explicit.SimIO.mealyIO" , "primType" : "Function" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.display" , "kind" : "Declaration" , "renderVoid" : "RenderVoid" , "template" : "$display(~ARG[0]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.finish" , "kind" : "Declaration" , "renderVoid" : "RenderVoid" , "template" : "$finish_and_return(~LIT[0]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.reg" , "kind" : "Expression" , "template" : "~ARG[0]" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.readReg" , "kind" : "Expression" , "template" : "~ARG[0]" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.writeReg" , "kind" : "Declaration" , "renderVoid" : "RenderVoid" , "template" : "~ARG[0] = ~ARG[1];" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.openFile" , "kind" : "Expression" , "template" : "$fopen(~FILE[~LIT[0]],~LIT[1])" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.closeFile" , "kind" : "Declaration" , "renderVoid" : "RenderVoid" , "template" : "$fclose(~ARG[0]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.getChar" , "kind" : "Expression" , "template" : "$fgetc(~ARG[0])" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.putChar" , "kind" : "Declaration" , "renderVoid" : "RenderVoid" , "template" : "$ungetc(~ARG[0],~ARG[1]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.getLine" , "kind" : "Declaration" , "template" : "~RESULT = $fgets(~ARG[2],~ARG[1]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.isEOF" , "kind" : "Expression" , "template" : "$feof(~ARG[0])" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.flush" , "kind" : "Declaration" , "renderVoid" : "RenderVoid" , "template" : "$fflush(~ARG[0]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.seek" , "kind" : "Declaration" , "template" : "~RESULT = $fseek(~ARG[0],~ARG[1],~ARG[2]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.rewind" , "kind" : "Declaration" , "template" : "~RESULT = $rewind(~ARG[0]);" } } , { "BlackBox" : { "name" : "Clash.Explicit.SimIO.tell" , "kind" : "Expression" , "template" : "$ftell(~ARG[0])" } } , { "Primitive" : { "name" : "Clash.Explicit.SimIO.fmapSimIO#" , "primType" : "Function" } } , { "Primitive" : { "name" : "Clash.Explicit.SimIO.pureSimIO#" , "primType" : "Function" } } , { "Primitive" : { "name" : "Clash.Explicit.SimIO.apSimIO#" , "primType" : "Function" } } , { "Primitive" : { "name" : "Clash.Explicit.SimIO.bindSimIO#" , "primType" : "Function" } } , { "Primitive" : { "name" : "Clash.Explicit.SimIO.unSimIO#" , "primType" : "Function" } } ]