aboutsummaryrefslogtreecommitdiff
path: root/AST.hs
diff options
context:
space:
mode:
authorTom Smeding <tom@tomsmeding.com>2024-02-17 09:22:49 +0100
committerTom Smeding <tom@tomsmeding.com>2024-02-17 09:22:49 +0100
commit3faca807fe96f2cefa50023fe373d8bcf1430121 (patch)
tree00ee8524bb93fb589468edea0502e626f7ff3df2 /AST.hs
parent3ef786673ff8298124cd3b5ef50c35dbb23f77e2 (diff)
Move to src/, working HLS in examples/
Diffstat (limited to 'AST.hs')
-rw-r--r--AST.hs61
1 files changed, 0 insertions, 61 deletions
diff --git a/AST.hs b/AST.hs
deleted file mode 100644
index 47652b6..0000000
--- a/AST.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-module AST where
-
-import Data.List.NonEmpty (NonEmpty)
-
-
-newtype Name = Name String
- deriving (Show, Eq)
-
-data Program t = Program [DataDef] [FunDef t]
- deriving (Show)
-
-data DataDef = DataDef Name [Name] [(Name, [Type])]
- deriving (Show)
-
-data FunDef t = FunDef Name (Maybe Type) (NonEmpty (FunEq t))
- deriving (Show)
-
-data FunEq t = FunEq Name [Pattern t] (RHS t)
- deriving (Show)
-
-data Type
- = TApp Type [Type]
- | TTup [Type]
- | TList Type
- | TFun Type Type
- | TCon Name
- | TVar Name
- deriving (Show)
-
-data Pattern t
- = PWildcard t
- | PVar t Name
- | PAs t Name (Pattern t)
- | PCon t Name [Pattern t]
- | PList t [Pattern t]
- | PTup t [Pattern t]
- deriving (Show)
-
-data RHS t
- = Guarded [(Expr t, Expr t)] -- currently not parsed
- | Plain (Expr t)
- deriving (Show)
-
-data Expr t
- = ELit t Literal
- | EVar t Name
- | ECon t Name
- | EList t [Expr t]
- | ETup t [Expr t]
- | EApp t (Expr t) [Expr t]
- | EOp t (Expr t) Operator (Expr t)
- | EIf t (Expr t) (Expr t) (Expr t)
- | ECase t (Expr t) [(Pattern t, RHS t)]
- | ELet t [FunDef t] (Expr t)
- deriving (Show)
-
-data Literal = LInt Integer | LFloat Rational | LChar Char | LString String
- deriving (Show)
-
-data Operator = OAdd | OSub | OMul | ODiv | OMod | OEqu | OPow
- deriving (Show)