cpp-peglib/pl0
2017-08-17 17:57:30 -04:00
..
samples Moved PL/0 sample directory 2017-08-08 07:06:37 -04:00
Makefile Added Makefile for PL/0. 2017-08-17 17:54:46 -04:00
pl0.cc Cleanup pl0.cc 2017-08-17 17:46:03 -04:00
README.md Added build documentation for PL/0. 2017-08-17 17:57:30 -04:00

PL/0 language example

https://en.wikipedia.org/wiki/PL/0

  • PL/0 PEG syntax
  • AST generation with symbol scope
  • Interpreter (slow...)
  • LLVM Code generation
  • LLVM JIT execution (fast!)

Build

brew install llvm
export PATH="$PATH:/usr/local/opt/llvm/bin"
make

Usage

pl0 PATH [--ast] [--llvm] [--jit]

  --ast: Show AST tree
  --llvm: Dump LLVM IR
  --jit: LLVM JIT execution