summaryrefslogtreecommitdiff
path: root/Assignment2/src/DTMC.icl
diff options
context:
space:
mode:
authorCamil Staps2018-07-06 11:12:03 +0200
committerCamil Staps2018-07-06 11:14:23 +0200
commitfdcc5373160d2d522ecd9a1b8e1dde0d782605e2 (patch)
treecece8d2c8a49f530ba8f8c77ef928031271201c0 /Assignment2/src/DTMC.icl
parentProvide initial description of the implementation (diff)
This is so ugly
Diffstat (limited to 'Assignment2/src/DTMC.icl')
-rw-r--r--Assignment2/src/DTMC.icl18
1 files changed, 14 insertions, 4 deletions
diff --git a/Assignment2/src/DTMC.icl b/Assignment2/src/DTMC.icl
index 6c81510..1d9bafd 100644
--- a/Assignment2/src/DTMC.icl
+++ b/Assignment2/src/DTMC.icl
@@ -16,6 +16,7 @@ import Data.List
import qualified Data.Map as M
from Data.Map import :: Map, alter
import Data.Maybe
+import System.CommandLine
import System.File
import System.FilePath
import Text
@@ -169,8 +170,8 @@ printDTMC dtmc=:{nr_states,states}
# (state_strings,states) = printStates 0 states
# s = join "\n"
[ "@type: DTMC"
- , "@parameters"
- , "@reward_models"
+ , "@parameters\n"
+ , "@reward_models\n"
, "@nr_states"
, toString nr_states
, "@model"
@@ -213,7 +214,16 @@ where
addVar f t (Just fn) = Just ("((" <+ fn <+ ") + v" <+ f <+ "_" <+ t <+ ")")
Start w
-# (dtmc,w) = parseDTMC "die.drn" w
+# ([prog:args],w) = getCommandLine w
+| length args <> 2
+ # (io,w) = stdio w
+ # io = io <<< "Usage: " <<< prog <<< " DRN_IN DRN_OUT\n"
+ # (_,w) = fclose io w
+ = w
+# [drn_in,drn_out:_] = args
+# (dtmc,w) = parseDTMC drn_in w
# dtmc = addVars dtmc
# dtmc = stateElimination dtmc
-= printDTMC dtmc
+# (dtmcs,dtmc) = printDTMC dtmc
+# (_,w) = writeFile drn_out dtmcs w
+= w