CSPM-cspm-0.8.1.0: include/lua/cspmPrelude.lua
local CSPM={}
local eval,transitions,viewProofTree,newTransistionList
local newProofTree,newValue,newProcess
function toString (o) return _cspm_toString(o) end
function valueToProcess(o) return _cspm_valueToProcess(o) end
function eval (expression, filename, verbose)
local verb = verbose or false
return newValue(_cspm_eval(verb, filename, expression))
end
function transitions (sigma, process)
return newTransitionList(sigma, _cspm_transitions(sigma, process))
end
function viewProofTree (sigma, proofTree)
local trans = _cspm_viewProofTree (proofTree)
local res = {}
res.event = toString (trans.event)
res.nextState = newProcess (trans.succState, sigma)
return res
end
function newTransitionList (sigma, rules)
local trans = {}
for key, rule in ipairs(rules) do
trans[key] = newProofTree(sigma, rule)
end
return trans
end
function newProofTree (hsSigma, hsProof)
local obj = viewProofTree (hsSigma, hsProof)
obj.type = 'ProofTree'
obj.toString = function () return toString(hsProof) end
return obj
end
function newValue (obj)
obj.type = 'Value'
obj.toString = function () return toString(obj.value) end
function obj.transitions ()
return transitions(obj.sigma, valueToProcess(obj.value))
end
return obj
end
function newProcess (hsProc, hsSigma)
local obj = {}
obj.type = 'Process'
obj.toString = function () return toString(hsProc) end
function obj.transitions ()
return transitions(hsSigma, hsProc)
end
return obj
end
CSPM.Haskell_exports_info = _cspm_exportInfo(); _cspm_exportInfo = nil
CSPM.Haskell_exports = _cspm_hsExports; _cspm_hsExports = nil
CSPM.help = "cspmPrelude for the Lua interface of CSPM"
CSPM.eval = eval
return CSPM