summaryrefslogtreecommitdiff
path: root/src/SPL/Syntax.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/SPL/Syntax.hs')
-rw-r--r--src/SPL/Syntax.hs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/SPL/Syntax.hs b/src/SPL/Syntax.hs
index e40d47c..f52b866 100644
--- a/src/SPL/Syntax.hs
+++ b/src/SPL/Syntax.hs
@@ -30,15 +30,17 @@ data Type
= TInt
| TBool
| TChar
+ | TVoid
| TList Type
| TTuple Type Type
| TArrow [Type] Type
+ | TVar Name
deriving (Show)
data Statement
= If Expression Statement (Maybe Statement)
| While Expression Statement
- | Assign Name Expression
+ | Assign Name [Field] Expression
| Eval Expression
| Return (Maybe Expression)
| Seq Statement Statement
@@ -46,7 +48,8 @@ data Statement
deriving (Show)
data Expression
- = Field Name Field
+ = Var Name
+ | Field Expression Field
| Op2 Expression Op2 Expression
| Op1 Op1 Expression
| Literal Literal