Skip to content

Khaleed/rania

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rania

A succinct lisp interpreter in JavaScript.

Methodology

Rania is built using Node 9.3.0 and Babel transpiler. Babel-register is used to compile ES6/ES7 into ES5 and run Node in development mode. In production, babel-register is not used but code is compiled before running the babel command from the babel-cli package.

Instructions

Dependencies

To install dependencies

yarn install or npm install

Run

To start running Node

yarn start or npm start

Build

To build and compile using Babel

yarn dist or npm run dist

To delete files in build directory

yarn clean or npm run clean

Deploy

To deploy latest build

yarn deploy or npm deploy

Test

To run tests using Jest

yarn test or npm test

REPL

To start using Rania, first build using npm run dist and then run node build/repl

Tasks

  • Implement parser that creates tokens and an abstract syntax tree
  • Make environment object that maps variables to their values
  • Implement evaluator that evaluates program given a syntax tree and environment object
  • Create REPL to run Rania programs

License

Rania is released under the The Apache 2.0 License.

Releases

No releases published

Packages

No packages published