Recursive Descent Parser GObjectified
[cascardo/grammar.git] / rdp.h
diff --git a/rdp.h b/rdp.h
index 2e892fb..1455c52 100644 (file)
--- a/rdp.h
+++ b/rdp.h
@@ -1,25 +1,41 @@
 #ifndef RDP_H
 #define RDP_H
 
-#include "parser.h"
+#include <grammar.h>
 
-typedef struct
-{
-  symbol_t* symbol;
-  gpointer attrib;
-} buffer_t;
+#define RDP_TYPE            (rdp_get_type ())
+#define RDP(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
+                                    RDP_TYPE, Rdp))
+#define RDP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), \
+                                    RDP_TYPE, RdpClass))
+#define IS_RDP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
+                                    RDP_TYPE))
+#define IS_RDP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+                                    RDP_TYPE))
+#define RDP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
+                                    RDP_TYPE, RdpClass))
+
+
+typedef struct _buffer buffer_t;
 
 typedef struct
 {
+  Grammar parent;
   nextcb cb;
   gpointer data;
-  GList* rules;
   GList* buffer;
   symbol_t* start;
-} rdp_t;
+} Rdp;
+
+typedef struct
+{
+  GrammarClass parent;
+} RdpClass;
+
+GType rdp_get_type ();
 
-rdp_t* rdp_new (nextcb, gpointer, gint);
-void rdp_delete (rdp_t*);
-gpointer rdp_build (rdp_t*);
+Rdp* rdp_new (nextcb, gpointer, gint);
+void rdp_delete (Rdp*);
+gpointer rdp_build (Rdp*);
 
 #endif