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