module Ast where
import BasicNumber
type VarName = String
type FunName = String
-- abstract syntax tree
data Ast = Set VarName BasicExp -- set variable literally
| EvalSet VarName BasicExp -- eval and set
| Eval BasicExp -- eval
| NullCmd -- null command
| SyntaxError -- syntax error
-- basic expression
data BasicExp = Func FunName [BasicExp]
| Numb BasicNumber
| Var String
| EVar String
| BSError
|