X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fgrammar.git;a=blobdiff_plain;f=rdp.c;h=52245af1cc32509b3b37817d6c929edfff8e4209;hp=a6fca7c36229ab7e1ccbe8722f59b373546164a0;hb=e8f555ae834cd25fd444b0e5856283dbd7333716;hpb=b634d3dac61fc6bb42bafd01eae3dbf6ae8e961d diff --git a/rdp.c b/rdp.c index a6fca7c..52245af 100644 --- a/rdp.c +++ b/rdp.c @@ -1,7 +1,7 @@ #include "rdp.h" #include -rdp_t* rdp_new (nextcb cb, gpointer data) +rdp_t* rdp_new (nextcb cb, gpointer data, gint value) { rdp_t* parser; @@ -9,6 +9,7 @@ rdp_t* rdp_new (nextcb cb, gpointer data) parser = g_malloc (sizeof (rdp_t)); parser->cb = cb; parser->data = data; + parser->start = symbol_new (FALSE, value); parser->rules = NULL; @@ -21,6 +22,7 @@ rdp_t* rdp_new (nextcb cb, gpointer data) void rdp_delete (rdp_t* parser) { + g_free (parser->start); g_free (parser); } @@ -140,7 +142,7 @@ gpointer rdp_build (rdp_t* parser) gpointer attrib; - if (rdp_step (parser, NULL, &attrib)) + if (rdp_step (parser, parser->start, &attrib)) return attrib; return NULL;