1455c52fa46d06805fe2dd2e6fa57f68b773b664
[cascardo/grammar.git] / rdp.h
1 #ifndef RDP_H
2 #define RDP_H
3
4 #include <grammar.h>
5
6 #define RDP_TYPE            (rdp_get_type ())
7 #define RDP(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
8                                     RDP_TYPE, Rdp))
9 #define RDP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), \
10                                     RDP_TYPE, RdpClass))
11 #define IS_RDP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
12                                     RDP_TYPE))
13 #define IS_RDP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
14                                     RDP_TYPE))
15 #define RDP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
16                                     RDP_TYPE, RdpClass))
17
18
19 typedef struct _buffer buffer_t;
20
21 typedef struct
22 {
23   Grammar parent;
24   nextcb cb;
25   gpointer data;
26   GList* buffer;
27   symbol_t* start;
28 } Rdp;
29
30 typedef struct
31 {
32   GrammarClass parent;
33 } RdpClass;
34
35 GType rdp_get_type ();
36
37 Rdp* rdp_new (nextcb, gpointer, gint);
38 void rdp_delete (Rdp*);
39 gpointer rdp_build (Rdp*);
40
41 #endif