Skip to content

chidiwilliams/jscheme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

jscheme

A Scheme interpreter and REPL written in JavaScript.

Parser grammar

program     => expression*
expression  => lambda | define | if | set! | let
              | "(" expression* ")" | () | atom
lambda      => "(" "lambda" "(" SYMBOL* ")" expression* ")"
define      => "(" "define" SYMBOL expression ")"
if          => "(" "if" expression expression expression? ")"
set!        => "(" "set" SYMBOL expression ")"
let         => "(" "let" "(" let-binding* ")" expression* ")"
let-binding => "(" SYMBOL expression ")"
atom        => SYMBOL | NUMBER | TRUE | FALSE | STRING

About

Scheme interpreter and REPL

Resources

Stars

12 stars

Watchers

1 watching

Forks

Contributors