From 96b767d7cab6c8ca41f656e41dd57196cb45e233 Mon Sep 17 00:00:00 2001 From: Einhard Leichtfuß Date: Mon, 19 May 2025 01:57:15 +0200 Subject: Expression AST and parser Deleted old AST.hs; old code shall re-appear. --- src/Language/SimpleShell/AST/Expr.hs | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/Language/SimpleShell/AST/Expr.hs (limited to 'src/Language/SimpleShell/AST/Expr.hs') diff --git a/src/Language/SimpleShell/AST/Expr.hs b/src/Language/SimpleShell/AST/Expr.hs new file mode 100644 index 0000000..0aaf16d --- /dev/null +++ b/src/Language/SimpleShell/AST/Expr.hs @@ -0,0 +1,47 @@ +module Language.SimpleShell.AST.Expr + ( Expr(..) + , TypedExpr + , VarName + , FunName + ) +where + + +import Language.SimpleShell.AST.SimpleType (SimpleType) + +import Data.Text (Text) + + +type VarName = Text +type FunName = Text + + +-- | Pure expression (no side effects). +data Expr + = IntLiteral Integer + | StrLiteral String + | BoolLiteral Bool + | Var VarName + | FunCall FunName [Expr] + | And Expr Expr + | Or Expr Expr + | Not Expr + | Eq Expr Expr + | Neq Expr Expr + | Gt Expr Expr + | Ge Expr Expr + | Lt Expr Expr + | Le Expr Expr + | Add Expr Expr + | Sub Expr Expr + | Mul Expr Expr + | Div Expr Expr + | UMinus Expr + | Concat Expr Expr + | Ternary Expr Expr Expr + | Length Expr + | IntCast Expr + | StrCast Expr + deriving (Show) + +type TypedExpr = (SimpleType, Expr) -- cgit v1.2.3