Added LR1 Parsing Algorithm
[cascardo/grammar.git] / lr1.h
diff --git a/lr1.h b/lr1.h
new file mode 100644 (file)
index 0000000..89de8ce
--- /dev/null
+++ b/lr1.h
@@ -0,0 +1,18 @@
+#ifndef LR1_H
+#define LR1_H
+
+#include <grammar.h>
+
+typedef struct _transition_t transition_t;
+typedef struct _lr1_t lr1_t;
+
+transition_t* transition_shift_new (gint);
+transition_t* transition_reduce_new (symbol_t*, rule_t*);
+transition_t* transition_accept_new ();
+void transition_delete (transition_t*);
+lr1_t* lr1_new (nextcb, gpointer);
+void lr1_delete (lr1_t*);
+void lr1_add (lr1_t*, gint, symbol_t*, transition_t*);
+gpointer lr1_build (lr1_t*);
+
+#endif