#include "rdp.h"
#include <stdlib.h>
-rdp_t* rdp_new (nextcb cb, gpointer data)
+rdp_t* rdp_new (nextcb cb, gpointer data, gint value)
{
rdp_t* parser;
parser = g_malloc (sizeof (rdp_t));
parser->cb = cb;
parser->data = data;
+ parser->start = symbol_new (FALSE, value);
parser->rules = NULL;
void rdp_delete (rdp_t* parser)
{
+ g_free (parser->start);
g_free (parser);
}
gpointer attrib;
- if (rdp_step (parser, NULL, &attrib))
+ if (rdp_step (parser, parser->start, &attrib))
return attrib;
return NULL;
gpointer data;
GList* rules;
GList* buffer;
+ symbol_t* start;
} rdp_t;
-rdp_t* rdp_new (nextcb, gpointer);
+rdp_t* rdp_new (nextcb, gpointer, gint);
void rdp_delete (rdp_t*);
gpointer rdp_build (rdp_t*);