From 1325ebcdd1735a379baedd66eeb116cb5fde49e9 Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Wed, 17 Apr 2013 15:10:33 +0200 Subject: [PATCH] add LL backend stub --- src/Makefile | 3 ++- src/backends/ll.c | 17 +++++++++++++++++ src/compile.c | 1 + src/hammer.h | 1 + src/internal.h | 1 + 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/backends/ll.c diff --git a/src/Makefile b/src/Makefile index 84970c92..070e7a81 100644 --- a/src/Makefile +++ b/src/Makefile @@ -26,7 +26,8 @@ PARSERS := \ indirect BACKENDS := \ - packrat + packrat \ + ll HAMMER_PARTS := \ bitreader.o \ diff --git a/src/backends/ll.c b/src/backends/ll.c new file mode 100644 index 00000000..cc5369cf --- /dev/null +++ b/src/backends/ll.c @@ -0,0 +1,17 @@ +#include <assert.h> +#include "../internal.h" +#include "../parsers/parser_internal.h" + + +int h_ll_compile(HAllocator* mm__, const HParser* parser, const void* params) { + return -1; // TODO +} + +HParseResult *h_ll_parse(HAllocator* mm__, const HParser* parser, HParseState* parse_state) { + return NULL; // TODO +} + +HParserBackendVTable h__ll_backend_vtable = { + .compile = h_ll_compile, + .parse = h_ll_parse +}; diff --git a/src/compile.c b/src/compile.c index e151cfb8..8f2286a3 100644 --- a/src/compile.c +++ b/src/compile.c @@ -4,6 +4,7 @@ static HParserBackendVTable *backends[PB_MAX] = { &h__packrat_backend_vtable, + &h__ll_backend_vtable, }; int h_compile(const HParser* parser, HParserBackend backend, const void* params) { diff --git a/src/hammer.h b/src/hammer.h index ca973ac7..e75a41fd 100644 --- a/src/hammer.h +++ b/src/hammer.h @@ -34,6 +34,7 @@ typedef struct HParseState_ HParseState; typedef enum HParserBackend_ { PB_MIN = 0, PB_PACKRAT = PB_MIN, // PB_MIN is always the default. + PB_LL, PB_MAX } HParserBackend; diff --git a/src/internal.h b/src/internal.h index 6245efad..29ba52a8 100644 --- a/src/internal.h +++ b/src/internal.h @@ -215,6 +215,7 @@ struct HBitWriter_ { // Backends {{{ extern HParserBackendVTable h__packrat_backend_vtable; +extern HParserBackendVTable h__ll_backend_vtable; // }}} // TODO(thequux): Set symbol visibility for these functions so that they aren't exported. -- GitLab