diff options
author | Camil Staps | 2016-05-26 17:23:16 +0200 |
---|---|---|
committer | Camil Staps | 2016-05-26 17:23:16 +0200 |
commit | ba10d1b5ec24a33059030c16f82558fe45e165d2 (patch) | |
tree | 41f438c3574d3b75ec9e03080a78ba26e63e5b2b /Smurf.dcl | |
parent | fix toString for Push (diff) |
Overloading IO functions in step; POC derivation tree generation
Diffstat (limited to 'Smurf.dcl')
-rw-r--r-- | Smurf.dcl | 20 |
1 files changed, 18 insertions, 2 deletions
@@ -24,6 +24,15 @@ from Data.Maybe import ::Maybe , store :: Store } +:: IO io = IO (io -> .(String, io)) (String io -> io) + +:: ListIO = { input :: [String] + , output :: [String] + } + +:: Transition = (-->) infix 1 (Program, [String], State) ([String], [String], State) +:: DerivationTree :== [Transition] + derive gEq Stm instance == Stm @@ -34,6 +43,13 @@ instance fromChar Stm instance zero State instance toString State -step :: !Program State !*File -> *(Maybe (!Program, State), *File) -run :: !Program State *File -> *(Maybe State, *File) +instance zero ListIO + +instance toString Transition +instance toString DerivationTree + +step :: !Program State u:io u:(IO u:io) -> u:(Maybe (!Program, State), u:io) +run :: !Program State io (IO io) -> (Maybe State, io) +listIO :: IO ListIO +tree :: !Program !State !ListIO (IO ListIO) -> Maybe DerivationTree |