├── .circleci └── config.yml ├── .gitignore ├── LICENSE.md ├── Makefile ├── README.md ├── btest.yaml ├── examples ├── advanced-dotted-pair.scm ├── bad-lex.scm ├── basic.scm ├── begin.scm ├── callstack.scm ├── car.scm ├── cdr.scm ├── comment.scm ├── compile-basic.scm ├── define-let.scm ├── define-scheme.scm ├── define.scm ├── dino.scm ├── dotted-pair.scm ├── ellipsis-syntax.scm ├── eval-list-proc.scm ├── eval-non-proc.scm ├── eval-simple.scm ├── eval.scm ├── export-hidden.scm ├── external-library.scm ├── if.scm ├── lambda-bind-all-to-symbol.scm ├── lambda.scm ├── let.scm ├── letstar.scm ├── library.scm ├── list-car.scm ├── list.scm ├── many-things.scm ├── map.scm ├── my-let.scm ├── plus.scm ├── quote-eval.scm ├── quote.scm ├── read-eval.scm ├── recursion-tco-begin.scm ├── recursion-tco.scm ├── recursion.scm ├── repeated-cdr.scm ├── set.scm ├── simple-dotted-pair.scm ├── simple-list.scm ├── simple-syntax.scm ├── simple.scm ├── string.scm ├── test.scm ├── test2.scm └── vector.scm ├── src ├── backends │ ├── d │ │ ├── bsdc.d │ │ ├── cg.d │ │ ├── context.d │ │ └── ir.d │ └── interpreter │ │ ├── bsdi.d │ │ ├── lib │ │ ├── bsds │ │ │ └── dbg.d │ │ └── scheme │ │ │ ├── base.d │ │ │ ├── eval.d │ │ │ ├── read.d │ │ │ └── write.d │ │ └── runtime.d ├── buffer.d ├── common.d ├── expand.d ├── lex.d ├── parse.d ├── utility.d └── value.d └── tests ├── bad-fun-call.yaml ├── car-cons.yaml ├── define-begin.yaml ├── define.yaml ├── dotted-pair.yaml ├── ellipsis-syntax.yaml ├── include.yaml ├── lambda-list-arg.yaml ├── lambda-symbol-bind.yaml ├── lambda.yaml ├── let.yaml ├── library-export.yaml ├── library-external.yaml ├── library.yaml ├── list-to-string.yaml ├── make-vector.yaml ├── my-let.yaml ├── quote-eval.yaml ├── quote.yaml ├── read-eval.yaml ├── recursion.yaml ├── set.yaml ├── simple-syntax.yaml ├── string-append.yaml ├── string-case.yaml ├── string-eq.yaml ├── string-fill.yaml ├── string-length.yaml ├── string-ref.yaml ├── string-set.yaml ├── string-to-list.yaml ├── string.yaml ├── stringp.yaml ├── substring.yaml ├── vector-append.yaml └── vector-to-string.yaml /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | bin 2 | 3 | .btest -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/LICENSE.md -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/README.md -------------------------------------------------------------------------------- /btest.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/btest.yaml -------------------------------------------------------------------------------- /examples/advanced-dotted-pair.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/advanced-dotted-pair.scm -------------------------------------------------------------------------------- /examples/bad-lex.scm: -------------------------------------------------------------------------------- 1 | (define f \#t) 2 | -------------------------------------------------------------------------------- /examples/basic.scm: -------------------------------------------------------------------------------- 1 | (display 1) 2 | (newline) 3 | -------------------------------------------------------------------------------- /examples/begin.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/begin.scm -------------------------------------------------------------------------------- /examples/callstack.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/callstack.scm -------------------------------------------------------------------------------- /examples/car.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/car.scm -------------------------------------------------------------------------------- /examples/cdr.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/cdr.scm -------------------------------------------------------------------------------- /examples/comment.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/comment.scm -------------------------------------------------------------------------------- /examples/compile-basic.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/compile-basic.scm -------------------------------------------------------------------------------- /examples/define-let.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/define-let.scm -------------------------------------------------------------------------------- /examples/define-scheme.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/define-scheme.scm -------------------------------------------------------------------------------- /examples/define.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/define.scm -------------------------------------------------------------------------------- /examples/dino.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/dino.scm -------------------------------------------------------------------------------- /examples/dotted-pair.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/dotted-pair.scm -------------------------------------------------------------------------------- /examples/ellipsis-syntax.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/ellipsis-syntax.scm -------------------------------------------------------------------------------- /examples/eval-list-proc.scm: -------------------------------------------------------------------------------- 1 | (display ((car '(+)) 1 2)) 2 | 3 | (newline) 4 | -------------------------------------------------------------------------------- /examples/eval-non-proc.scm: -------------------------------------------------------------------------------- 1 | ('(car (cons + ())) 1 2) 2 | -------------------------------------------------------------------------------- /examples/eval-simple.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/eval-simple.scm -------------------------------------------------------------------------------- /examples/eval.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/eval.scm -------------------------------------------------------------------------------- /examples/export-hidden.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/export-hidden.scm -------------------------------------------------------------------------------- /examples/external-library.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/external-library.scm -------------------------------------------------------------------------------- /examples/if.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/if.scm -------------------------------------------------------------------------------- /examples/lambda-bind-all-to-symbol.scm: -------------------------------------------------------------------------------- 1 | (display ((lambda a a) '(1 2 3))) 2 | 3 | (newline) 4 | -------------------------------------------------------------------------------- /examples/lambda.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/lambda.scm -------------------------------------------------------------------------------- /examples/let.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/let.scm -------------------------------------------------------------------------------- /examples/letstar.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/letstar.scm -------------------------------------------------------------------------------- /examples/library.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/library.scm -------------------------------------------------------------------------------- /examples/list-car.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/list-car.scm -------------------------------------------------------------------------------- /examples/list.scm: -------------------------------------------------------------------------------- 1 | (display '(1 cons 4 a)) 2 | 3 | (newline) 4 | -------------------------------------------------------------------------------- /examples/many-things.scm: -------------------------------------------------------------------------------- 1 | (display (+ 1 (- 4 3) (* 1 9))) 2 | -------------------------------------------------------------------------------- /examples/map.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/map.scm -------------------------------------------------------------------------------- /examples/my-let.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/my-let.scm -------------------------------------------------------------------------------- /examples/plus.scm: -------------------------------------------------------------------------------- 1 | (display (+ 1 2)) 2 | -------------------------------------------------------------------------------- /examples/quote-eval.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/quote-eval.scm -------------------------------------------------------------------------------- /examples/quote.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/quote.scm -------------------------------------------------------------------------------- /examples/read-eval.scm: -------------------------------------------------------------------------------- 1 | (display (eval (read "(+ 1 2)"))) 2 | 3 | (newline) 4 | -------------------------------------------------------------------------------- /examples/recursion-tco-begin.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/recursion-tco-begin.scm -------------------------------------------------------------------------------- /examples/recursion-tco.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/recursion-tco.scm -------------------------------------------------------------------------------- /examples/recursion.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/recursion.scm -------------------------------------------------------------------------------- /examples/repeated-cdr.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/repeated-cdr.scm -------------------------------------------------------------------------------- /examples/set.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/set.scm -------------------------------------------------------------------------------- /examples/simple-dotted-pair.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/simple-dotted-pair.scm -------------------------------------------------------------------------------- /examples/simple-list.scm: -------------------------------------------------------------------------------- 1 | (display (let ((a 7)) a)) 2 | 3 | (newline) 4 | -------------------------------------------------------------------------------- /examples/simple-syntax.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/simple-syntax.scm -------------------------------------------------------------------------------- /examples/simple.scm: -------------------------------------------------------------------------------- 1 | (display (+ 1 2)) 2 | 3 | (newline) 4 | -------------------------------------------------------------------------------- /examples/string.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/string.scm -------------------------------------------------------------------------------- /examples/test.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/test.scm -------------------------------------------------------------------------------- /examples/test2.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/test2.scm -------------------------------------------------------------------------------- /examples/vector.scm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/examples/vector.scm -------------------------------------------------------------------------------- /src/backends/d/bsdc.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/d/bsdc.d -------------------------------------------------------------------------------- /src/backends/d/cg.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/d/cg.d -------------------------------------------------------------------------------- /src/backends/d/context.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/d/context.d -------------------------------------------------------------------------------- /src/backends/d/ir.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/d/ir.d -------------------------------------------------------------------------------- /src/backends/interpreter/bsdi.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/bsdi.d -------------------------------------------------------------------------------- /src/backends/interpreter/lib/bsds/dbg.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/lib/bsds/dbg.d -------------------------------------------------------------------------------- /src/backends/interpreter/lib/scheme/base.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/lib/scheme/base.d -------------------------------------------------------------------------------- /src/backends/interpreter/lib/scheme/eval.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/lib/scheme/eval.d -------------------------------------------------------------------------------- /src/backends/interpreter/lib/scheme/read.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/lib/scheme/read.d -------------------------------------------------------------------------------- /src/backends/interpreter/lib/scheme/write.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/lib/scheme/write.d -------------------------------------------------------------------------------- /src/backends/interpreter/runtime.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/backends/interpreter/runtime.d -------------------------------------------------------------------------------- /src/buffer.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/buffer.d -------------------------------------------------------------------------------- /src/common.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/common.d -------------------------------------------------------------------------------- /src/expand.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/expand.d -------------------------------------------------------------------------------- /src/lex.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/lex.d -------------------------------------------------------------------------------- /src/parse.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/parse.d -------------------------------------------------------------------------------- /src/utility.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/utility.d -------------------------------------------------------------------------------- /src/value.d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/src/value.d -------------------------------------------------------------------------------- /tests/bad-fun-call.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/bad-fun-call.yaml -------------------------------------------------------------------------------- /tests/car-cons.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/car-cons.yaml -------------------------------------------------------------------------------- /tests/define-begin.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/define-begin.yaml -------------------------------------------------------------------------------- /tests/define.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/define.yaml -------------------------------------------------------------------------------- /tests/dotted-pair.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/dotted-pair.yaml -------------------------------------------------------------------------------- /tests/ellipsis-syntax.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/ellipsis-syntax.yaml -------------------------------------------------------------------------------- /tests/include.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/include.yaml -------------------------------------------------------------------------------- /tests/lambda-list-arg.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/lambda-list-arg.yaml -------------------------------------------------------------------------------- /tests/lambda-symbol-bind.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/lambda-symbol-bind.yaml -------------------------------------------------------------------------------- /tests/lambda.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/lambda.yaml -------------------------------------------------------------------------------- /tests/let.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/let.yaml -------------------------------------------------------------------------------- /tests/library-export.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/library-export.yaml -------------------------------------------------------------------------------- /tests/library-external.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/library-external.yaml -------------------------------------------------------------------------------- /tests/library.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/library.yaml -------------------------------------------------------------------------------- /tests/list-to-string.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/list-to-string.yaml -------------------------------------------------------------------------------- /tests/make-vector.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/make-vector.yaml -------------------------------------------------------------------------------- /tests/my-let.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/my-let.yaml -------------------------------------------------------------------------------- /tests/quote-eval.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/quote-eval.yaml -------------------------------------------------------------------------------- /tests/quote.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/quote.yaml -------------------------------------------------------------------------------- /tests/read-eval.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/read-eval.yaml -------------------------------------------------------------------------------- /tests/recursion.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/recursion.yaml -------------------------------------------------------------------------------- /tests/set.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/set.yaml -------------------------------------------------------------------------------- /tests/simple-syntax.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/simple-syntax.yaml -------------------------------------------------------------------------------- /tests/string-append.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-append.yaml -------------------------------------------------------------------------------- /tests/string-case.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-case.yaml -------------------------------------------------------------------------------- /tests/string-eq.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-eq.yaml -------------------------------------------------------------------------------- /tests/string-fill.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-fill.yaml -------------------------------------------------------------------------------- /tests/string-length.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-length.yaml -------------------------------------------------------------------------------- /tests/string-ref.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-ref.yaml -------------------------------------------------------------------------------- /tests/string-set.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-set.yaml -------------------------------------------------------------------------------- /tests/string-to-list.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string-to-list.yaml -------------------------------------------------------------------------------- /tests/string.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/string.yaml -------------------------------------------------------------------------------- /tests/stringp.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/stringp.yaml -------------------------------------------------------------------------------- /tests/substring.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/substring.yaml -------------------------------------------------------------------------------- /tests/vector-append.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/vector-append.yaml -------------------------------------------------------------------------------- /tests/vector-to-string.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eatonphil/bsdscheme/HEAD/tests/vector-to-string.yaml --------------------------------------------------------------------------------