aboutsummaryrefslogtreecommitdiff
path: root/AST.hs
diff options
context:
space:
mode:
authortomsmeding <tom.smeding@gmail.com>2017-08-26 23:16:00 +0200
committertomsmeding <tom.smeding@gmail.com>2017-08-26 23:16:15 +0200
commitaa049227c17f15ad22092f1fcab4410bbf3521ba (patch)
tree7046e62ff530746754e19d07d4e8bc7d7a42ea22 /AST.hs
parentb2c5ef755bc7a2c736c5f52c4753dde66c04c3aa (diff)
Cleanup and features
debugger, bitwise ops, bounds checking, hex literals, better typing of some optimisations, makefile fix, exit function.
Diffstat (limited to 'AST.hs')
-rw-r--r--AST.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/AST.hs b/AST.hs
index 5217d46..197edf9 100644
--- a/AST.hs
+++ b/AST.hs
@@ -30,6 +30,7 @@ data Statement
| SBreak Int
| SReturn (Maybe Expression)
| SExpr Expression
+ | SDebugger
deriving (Show, Eq)
data AsExpression
@@ -49,6 +50,7 @@ data Expression
data BinaryOp
= BOAdd | BOSub | BOMul | BODiv | BOMod | BOPow
| BOAnd | BOOr
+ | BOBitAnd | BOBitOr | BOBitXor
| BOEq | BONeq | BOGt | BOLt | BOGeq | BOLeq
deriving (Show, Eq)
@@ -121,6 +123,7 @@ instance Pretty Statement where
prettyI i (SReturn (Just e)) =
"return " ++ prettyI i e ++ ";"
prettyI i (SExpr e) = prettyI i e ++ ";"
+ prettyI _ SDebugger = "debugger;"
instance Pretty Expression where
prettyI i (EBin bo a b (Just t)) =
@@ -164,6 +167,9 @@ instance Pretty BinaryOp where
prettyI _ BOLt = "<"
prettyI _ BOGeq = ">="
prettyI _ BOLeq = "<="
+ prettyI _ BOBitAnd = "&"
+ prettyI _ BOBitOr = "|"
+ prettyI _ BOBitXor = "^"
instance Pretty UnaryOp where