Parser combinators are well underway. Ones that are now finished are:

* token: matches a sequence of bytes (with length)
 * ch: matches a single byte
 * range: matches any byte within the range [lower, upper] (inclusive)
 * join_action: joins the results of another parser with a separator
 * negate: matches the opposite of any single-character parser
 * end_p: succeeds if there's no input left to parse
 * nothing_p: always fails

One other big change: the AST is now a GSequence of parsed_token_t's. WARNING: This is not actually enforced, because C.

Also tweaked the makefile a little (which will get clobbered in TQ's next commit) and added some documentary comments to hammer.h.
This commit is contained in:
Meredith L. Patterson 2012-05-01 00:33:47 +01:00
parent dfd8cf2a97
commit 318b594bed
4 changed files with 220 additions and 16 deletions

View file

@ -1,4 +1,4 @@
CFLAGS := $(shell pkg-config --cflags glib-2.0) -std=c99
CFLAGS := $(shell pkg-config --cflags glib-2.0) -std=gnu99
LDFLAGS := $(shell pkg-config --libs glib-2.0)
CC := gcc