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.
- 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 usingload
function directly in file or cmdline) - A standard library (Can be found in
stdlib/
)
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
- 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.
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.
Yippy is licensed under the MIT License. See LICENSE for more details.