chicode / lisa / Lisa

Lisa

A simple lisp
Example:
```
(defunc fib-recurse (n)
    (var a 0) (var b 1) (var f 1)
    (defunc calc-fib (i)
        (if (<= i n)
            (do
                (set f (+ a b))
                (set a b)
                (set b f)
                (calc-fib (+ i 1)))
            f))
    (calc-fib 2))
(defunc fib-while (n)
    (var a 0) (var b 1) (var f 1)
    (var i 2)
    (while (<= i n)
        (set f (+ a b))
        (set a b)
        (set b f)
        (set i (+ i 1))
        f))
(= (fib-recurse 10) (fib-while 10) 55)
```

parseProgram : Process.Options -> String -> Result Common.Error Process.Program

Parse a string into a program

parseProgramToJson : Process.Options -> String -> Json.Encode.Value

Parse a string into a Json representation of a program

parseExpression : Process.Options -> String -> Result Common.Error (List Process.ExprNode)

Parse a string into an expression

parseExpressionToJson : Process.Options -> String -> Json.Encode.Value

Parse a string into a Json representation of an expression

parseReplExpression : Process.Options -> String -> Result Common.Error (List Process.ReplExpression)

Parse a string into an expression intended for a REPL

parseReplExpressionToJson : Process.Options -> String -> Json.Encode.Value

Parse a string into a Json representation of an expression intended for a REPL