X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fgrammar.git;a=blobdiff_plain;f=rdp.h;h=1455c52fa46d06805fe2dd2e6fa57f68b773b664;hp=2e892fbe3bc35d340338c4f7093a0d3dc824fdc1;hb=ff6be7b36955b064ae18868ee2d8e0c46b23ddb8;hpb=045ec14b737624b1290c3cc7f5601a71f9fc4a0d diff --git a/rdp.h b/rdp.h index 2e892fb..1455c52 100644 --- a/rdp.h +++ b/rdp.h @@ -1,25 +1,41 @@ #ifndef RDP_H #define RDP_H -#include "parser.h" +#include -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