/lisp

simple and inaccurate interpreter in ± 800 lines of code

Primary LanguageGoGNU General Public License v3.0GPL-3.0

lisp

desing is very human. very easy to use
simple lisp from scratch in ± 800 lines of code (including some tests)

git clone https://github.com/Stasenko-Konstantin/lisp
cd lisp
go build cmd/lisp/main.go

usage: ./lisp [*.scm] [arg] where arg:
        --help   -- prints the help
        --past   -- prints intermediate 
        
./lisp
<<< :h
>>> :l, :load *.scm      -- evaluate file
>>> :h, :help            -- prints the help
>>> :p, :past            -- prints intermediate ast
>>> :q, :quit            -- program exit
<<< :p
>>> OK
<<< (println 1)

type = LIST_O, content = 
        type = NAME_O, content = println, x = 1, y = 0;
        type = NUM_O, content = 1, x = 10, y = 0;, x = 0, y = 0;

1 
>>> ( 1 )
<<<