🐏 a recursive-descent parser generator for PEG
C GAP Makefile CMake
Pull request Compare This branch is 65 commits ahead of whymirror:master.
Latest commit 265003c Jun 3, 2016 @fasterthanlime fasterthanlime Merge pull request #21 from Kampbell/master
Port on Windows under MSVC/VS2013
Failed to load latest commit information.
MSVC Port on Windows under MSVC/VS2013 Jun 3, 2016
samples
.gitignore
CMakeLists.txt
Makefile
README.md
compile.c
greg.c
greg.g
greg.h
greg.use
tree.c

README.md

greg

greg used to be _why's fork of Ian Piumarta's peg/leg, with the following differences:

  • Re-entrant
  • Some bug fixes

Since then, better error handling and other various features have been added.

Links

The most comprehensive example of greg usage is in nagaqueen, an ooc grammar, used in rock, an ooc compiler written in ooc.

Build instructions

With a GCC-like compiler, make should give you a greg executable.

If you modify greg.g (greg's own grammar is written in LEG), run make grammar to regenerate greg.c using greg itself, then run make again to build it.

To build with MSVC you need a getopt implementation such as this one.

Contributor guidelines

  • GitHub pull requests are the preferred way to submit contributions.
  • Don't modify greg.c, instead, modify greg.g and regenerate it as shown above.
  • Make sure greg is still self-hosting before you submit your code.
  • Major changes warrant a version bump, but they also warrant discussions.

For a list of contributors, see the GitHub contributor graph.

License

peg/leg is copyright (c) 2007 by Ian Piumarta released under an MIT license. As is greg.