Skip to content

chrispyles/scheme-interpreter

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Scheme Interpreter

This project is a web-based Scheme interpreter that runs entirely in the browser. The Scheme intepreter runs CS 61A Scheme, a flavor of Scheme used in UC Berkeley's CS 61A course. The interpreter's structure is loosely based on the Scheme project from that course.

Running the Interpreter

In the Browser

The web-based interpreter can be found at chrispyles.io/scheme-interpreter.

In the Terminal

This project also includes a command-line REPL that can also be used to execute Scheme code. To use it, clone this repository and use npm to run the start script:

git clone https://github.com/chrispyles/scheme-interpreter
cd scheme-interpreter
npm install
npm run start

Repository Structure

This repository is divided into two main components: the src directory and the client directory.

The src directory is a Node.js module that contains the JavaScript code for evaluating Scheme code. It also includes an entrypoint for running a terminal-based REPL to execute code locally. This module is imported in the client to handle code execution in the browser.

The client directory contains the code for the front-end website, built with React. This is the code that renders the website and calls the Scheme interpreter to evaluate the code that the user inputs.

The JavaScript and Sass for this site are bundled with webpack, and the JS is transpiled with babel. The site is hosted out of the gh-pages branch of this repo, and GitHub Actions is used to automate builds.

About

Scheme interpreter written in JavaScript with a React front-end

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published