File size: 456 Bytes
56de343 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | module Language.AST where
data Ident = Ident String
deriving (Eq, Ord, Show)
data Expr
= EVar Ident
| ENand Expr Expr
| ELit Bool
| EApp Ident [Expr]
deriving (Eq, Show)
data Stmt
= SDef Ident [Ident] Expr
| SAssert Expr
| SProve Ident Expr
deriving (Eq, Show)
data Module = Module
{ moduleName :: String
, moduleStmts :: [Stmt]
} deriving (Show)
identName :: Ident -> String
identName (Ident s) = s
|