diff options
author | Camil Staps | 2016-03-30 13:18:02 +0200 |
---|---|---|
committer | Camil Staps | 2016-03-30 13:18:02 +0200 |
commit | e452daceb395c4ea68bc67bd70f355f59867618b (patch) | |
tree | bf235fd22db5d4880685e83fc18dc6e6332f56e0 /While.icl | |
parent | Overloaded state, more boolean ops, unaliased Var (diff) |
Parentheses for Stm toString
Diffstat (limited to 'While.icl')
-rw-r--r-- | While.icl | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -107,8 +107,13 @@ where toString Skip = "skip" toString (s1 :. s2) = s1 <+ "; " <+ s2 toString (v := a) = v <+ ":=" <+ a - toString (If b s1 s2) = "if " <+ b <+ " then " <+ s1 <+ " else " <+ s2 - toString (While b s) = "while " <+ b <+ " do " <+ s <+ " done" + toString (While b s) = "while " <+ b <+ " do " <+ parens s + toString (If b s1 s2) + = "if " <+ b <+ " then " <+ parens s1 <+ " else " <+ parens s2 + +parens :: Stm -> String +parens (s1 :. s2) = "(" <+ s1 <+ "; " <+ s2 <+ ")" +parens stm = toString stm instance toString Var where toString (Var v) = {v} |