diff options
Diffstat (limited to 'src/Language/SimpleShell/AST/Statement.hs')
-rw-r--r-- | src/Language/SimpleShell/AST/Statement.hs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Language/SimpleShell/AST/Statement.hs b/src/Language/SimpleShell/AST/Statement.hs new file mode 100644 index 0000000..eb6f8b2 --- /dev/null +++ b/src/Language/SimpleShell/AST/Statement.hs @@ -0,0 +1,38 @@ +module Language.SimpleShell.AST.Statement + ( Statement(..) + ) +where + + +import Data.Text (Text) + +import Language.SimpleShell.AST.Expr (Expr) +import Language.SimpleShell.AST.Name (VarName, ProcedureName) + + +data Statement + = Assign VarName Expr + | Print Expr + | PrintErr Expr + | Read + (Maybe Char) -- ^ delimiter + VarName + | If Expr [Statement] [Statement] + | While Expr [Statement] + | RunCommand + (Maybe VarName) -- ^ return code + (Maybe VarName) -- ^ return value + (Maybe VarName) -- ^ stdout + (Maybe VarName) -- ^ stderr + Command + (Maybe VarName) -- ^ stdin + | Return + Expr -- ^ return code + Expr -- ^ return value + deriving (Show) + + +data Command + = ExtCommand Text + | ProcedureCall ProcedureName [Expr] + deriving (Show) |