A LISP interpreter written in Python --- LIS(PY).
βββ common-lisp-merge-sort.lisp
βββ debug-stages.py
βββ docs
βΒ Β βββ ast_Tree.png
βΒ Β βββ carbon.png
βΒ Β βββ cons-cells.png
βΒ Β βββ debug-stages.png
βΒ Β βββ eof-string.png
βΒ Β βββ err-warn.png
βΒ Β βββ example_interp.png
βΒ Β βββ exec-args.png
βΒ Β βββ execute_file.png
βΒ Β βββ files.png
βΒ Β βββ hello-world-flowchart.png
βΒ Β βββ ilispy_file.png
βΒ Β βββ index-err.png
βΒ Β βββ interp-Atom.png
βΒ Β βββ interp-Def.png
βΒ Β βββ interp-eval.png
βΒ Β βββ interp-exec.png
βΒ Β βββ interp-load_file.png
βΒ Β βββ interp-req.png
βΒ Β βββ interp-SymTab.png
βΒ Β βββ interp-visit.png
βΒ Β βββ interp-walk.png
βΒ Β βββ lexer-flow.png
βΒ Β βββ lexer_regex.png
βΒ Β βββ lex_numeric.png
βΒ Β βββ main_lex.png
βΒ Β βββ mismatched-parens.png
βΒ Β βββ nea.pdf
βΒ Β βββ nea.tex
βΒ Β βββ num-call.png
βΒ Β βββ paren_bal.png
βΒ Β βββ parse-error.png
βΒ Β βββ parser_atom.png
βΒ Β βββ parser-flow.png
βΒ Β βββ parser_header.png
βΒ Β βββ parser_macroexpand.png
βΒ Β βββ parser_macro-obj.png
βΒ Β βββ parser_parse.png
βΒ Β βββ parser_pre.png
βΒ Β βββ prelude.png
βΒ Β βββ references.bib
βΒ Β βββ repl_lispy.png
βΒ Β βββ token_obj.png
βΒ Β βββ token_stream.png
βΒ Β βββ too-few-parens.png
βΒ Β βββ too-many-parens.png
βΒ Β βββ tree_Data.png
βΒ Β βββ tree_Hier.png
βΒ Β βββ tree_Nil.png
βΒ Β βββ tree_Node.png
βΒ Β βββ tree_Nodes.png
βΒ Β βββ tree_Operator.png
βΒ Β βββ type-check.png
βΒ Β βββ unbound-sym.png
βββ execute
βββ hello_world.lispy
βββ ilispy
βββ LICENSE
βββ lispy
βΒ Β βββ config.py
βΒ Β βββ err.py
βΒ Β βββ __init__.py
βΒ Β βββ lexing.py
βΒ Β βββ parsing.py
βΒ Β βββ tree.py
βΒ Β βββ visitor.py
βββ _making_log.log
βββ prelude
βΒ Β βββ destructive.lispy
βΒ Β βββ dt.lispy
βΒ Β βββ functional.lispy
βΒ Β βββ IO.lispy
βΒ Β βββ lists.lispy
βΒ Β βββ loop.lispy
βΒ Β βββ numerics.lispy
βΒ Β βββ prelude.lispy
βββ README.md
βββ repl.lispy
βββ run-samples.sh
βββ samples
βΒ Β βββ atoms.lispy
βΒ Β βββ blocks.lispy
βΒ Β βββ compose.lispy
βΒ Β βββ declarative.lispy
βΒ Β βββ deep.lispy
βΒ Β βββ eval.lispy
βΒ Β βββ factorial.lispy
βΒ Β βββ fizzbuzz.lispy
βΒ Β βββ functions.lispy
βΒ Β βββ ifact.lispy
βΒ Β βββ integral.lispy
βΒ Β βββ internal.lispy
βΒ Β βββ lists.lispy
βΒ Β βββ merge_sort.lispy
βΒ Β βββ strings.lispy
βββ testing.lispy
βββ windows_execute.py
4 directories, 96 files
- The folder
lispy/
contains the implementation for the langauge. - The folder
samples/
contains examples of LISPY programs. - The folder
prelude/
contains the standard library for LISPY. - The folder
/docs
contains the source for the documentation. - The file
/docs/nea.pdf
is the compiled documentation document.
On GNU/Linux, in the root of this repository, type:
./execute <filename>
where <filename>
is some file ending with .lispy
.
On GNU/Linux, in the root of the repository again, type:
./ilispy
and the REPL should start.
ast
, parser
and lexer
are reserved file names/modules in Python, so I
couldn't use those names.