chicode / lisa / Lisa.Process


type Context
This is sort of strange in order to fix a problem with recursive type aliases.


type Expr
    = GetSymbol String
    | FuncCall ExprNode (List ExprNode)
    | Cond CondExpr
    | Func FuncDecl
    | Let (List ( String, ExprNode )) ExprNode
    | RecordLit (Dict String ExprNode)
    | FieldAccess (List String)
    | NoneLit
    | BoolLit Basics.Bool
    | NumLit Basics.Float
    | StrLit String
    | ListLit (List ExprNode)


type alias ExprNode =
Lisa.Common.LocatedNode Expr


type alias MacroHandler =
Context -> Lisa.Common.Location -> List Lisa.Parser.AstNode -> Result Lisa.Common.Error ExprNode

encodeExpr : ExprNode -> Json.Encode.Value

processExpr : Context -> Lisa.Parser.AstNode -> Result Lisa.Common.Error ExprNode

processExprOpts : Options -> Lisa.Parser.AstNode -> Result Lisa.Common.Error ExprNode

processProgram : Options -> List Lisa.Parser.AstNode -> Result Lisa.Common.Error Program


type alias Options =
{ macros : Dict String MacroHandler }


type alias Program =
Dict String ExprNode


type ReplExpression
    = Expression ExprNode
    | Definition String ExprNode

encodeReplExpression : ReplExpression -> Json.Encode.Value

processReplExpr : Options -> Lisa.Parser.AstNode -> Result Lisa.Common.Error ReplExpression