Skip to content
/ yippy Public

A Lisp like interpreted language.

License

Notifications You must be signed in to change notification settings

rawhuul/yippy

Repository files navigation

Yippy

Yippy is a scripting language in development that is similar to LISP. It’s my hobby project, and it’s quite interesting since I’m learning a lot of new stuff and how things function behind the scenes.

Features

  • Variables (Can be declared using let keyword)
  • Lambda Functions (Can be declared using lambda keyword)
  • Arithmetic Operators (+, -, *, / and % are implemented)
  • Relational Operators (<,>,<=,=>,==,!= are implemented)
  • Bitwise Operators (&, |, ^, << and >> are implemented)
  • Logical Operators (&& and ||, are implemented)
  • Unary Operators (+, -, ! and ~ are implemented)
  • Directly evaluate a file (using -f or --file flag or using load function directly in file or cmdline)
  • A standard library (Can be found in stdlib/)

Building

NOTE:- If you face any issue on any operating system, please consider opening an issue or PR.

Dependencies:-

  • gcc/clang Compiler.
  • make Build tool.
  • gc Boehm-Demers-Weiser conservative garbage collector, it can be found in official distro repo or can be manually compiled from gc.
# Clone this repo or Download locally from Release tags.
git clone https://github.com/basicfunc/yippy.git
git submodule init # For linenoise-ng and MPC, for REPL interface and parser respectively.
git submodule update
make # For native builds

Contributing

  • Pick an issue, or create an new issue. Provide adequate documentation for the issue.
  • Assign the issue or get it assigned.
  • Work on the code, once finished, raise a pull request.
  • Yippy is written in pure C, hence take care of pointers :)
  • If you’ve any idea regarding this language, you can open a issue to discuss it.
  • Current development branch for this project is main branch.

Thanksgiving 🙌

This project is heavily inspired by Build Your Own Lisp Book and uses mpc to parse the user input. I really appreciate Daniel Holden’s work. This project used to use linenoise for command line interface written by Salvatore Sanfilippo. But, now it uses linenoise-ng by arangodb for Windows compatibility.

License

Yippy is licensed under the MIT License. See LICENSE for more details.

About

A Lisp like interpreted language.

Resources

License

Stars

Watchers

Forks

Packages

No packages published