summaryrefslogtreecommitdiff
path: root/assignment-13/uFPL.dcl
diff options
context:
space:
mode:
authorCamil Staps2018-01-03 12:13:44 +0100
committerCamil Staps2018-01-06 15:03:02 +0100
commit32a3b5aa0f5b6343928c9e42e66cce9db7e14e90 (patch)
tree73117add4b929b179a1ad340b5911e22c3138a25 /assignment-13/uFPL.dcl
parentRename & restructure (diff)
Start iTasks Simulator
Diffstat (limited to 'assignment-13/uFPL.dcl')
-rw-r--r--assignment-13/uFPL.dcl12
1 files changed, 6 insertions, 6 deletions
diff --git a/assignment-13/uFPL.dcl b/assignment-13/uFPL.dcl
index 1bd3df4..dd9c047 100644
--- a/assignment-13/uFPL.dcl
+++ b/assignment-13/uFPL.dcl
@@ -8,7 +8,7 @@ from uFPL.C import :: CType, :: CExpr, :: CBody, :: CVar, :: CFun, :: CProg
:: RO = RO
:: RW = RW
-:: Shared t w =
+:: UShared t w =
{ sname :: String
, stype :: CType
, sinit :: t
@@ -17,7 +17,7 @@ from uFPL.C import :: CType, :: CExpr, :: CBody, :: CVar, :: CFun, :: CProg
:: Shares
= NoShares
- | E.t rw: Shares (Shared t rw) Shares
+ | E.t rw: Shares (UShared t rw) Shares
removeDupShares :: Shares -> Shares
@@ -34,14 +34,14 @@ instance allShares Trigger
instance allShares Rule
instance allShares NamedRule
-class Expr t where litExpr :: t -> CExpr
+class Expr t | TC t where litExpr :: t -> CExpr
instance Expr Int
instance Expr Bool
instance Expr Char
:: Expr t rw
= ELit t
- | EShared (Shared t rw)
+ | EShared (UShared t rw)
| E.rwa rwb: (+.) infixl 6 (Expr t rwa) (Expr t rwb) & + t
| E.rwa rwb: (-.) infixl 6 (Expr t rwa) (Expr t rwb) & - t
| E.rwa rwb: (*.) infixl 7 (Expr t rwa) (Expr t rwb) & * t
@@ -75,7 +75,7 @@ lit :: (t -> Expr t RO)
| E.rwa rwb: SetCursor (Expr Int rwa, Expr Int rwb)
| E.t rw: Print (Expr t rw) & Expr t
-:: NamedRule = E.r: (:=:) infix 1 String r & gen r CBody & allShares r
+:: NamedRule = E.r: (:=:) infix 1 String r & gen r CBody & allShares r & TC r
class gen f t :: f -> t
@@ -88,7 +88,7 @@ instance ||| NamedRule
instance ||| [NamedRule]
instance gen (Expr t rw) CExpr | Expr t
-instance gen (Shared t rw) CVar
+instance gen (UShared t rw) CVar
instance gen Trigger CExpr
instance gen Rule CBody
instance gen [r] CBody | gen r CBody