Jaspers has a very limited feature set right now, but if you want to kick the tires, you can run
Parrot will then turn stage 0 into bytecode and a fakecutable, and then the stage 0 compiler will be used compile the source code to itself, thus generating a bootstrapped stage 1 compiler, full of unicorns dipped in fairy dust.
It has not yet been decided what the stage-0 compiler should target. Currently the choices are PIR/PAST/POST/PBC.
This blog post about implementing a lisp with PEG.js and node using_pegjs is a good example of using PEG.js, and this presentation by Bryan Ford is a good theoretical introduction to Parsing Expression Grammars peg_theory.