rule_t* rule;
scanner_t* scanner;
- Rdp* parser;
+ rdp_t* parser;
GNode* tree;
int fd;
scanner = scanner_new (read, fd);
- parser = rdp_new (scanner_next, scanner, BNF_GRAMMAR);
- grammar = (grammar_t*) parser;
+ grammar = grammar_new ();
+ parser = rdp_new (scanner_next, scanner, BNF_GRAMMAR, grammar);
rule = grammar_rule_new (grammar, symbol_new (FALSE, BNF_GRAMMAR));
rule_append (rule, symbol_new (FALSE, BNF_RULES));
close (fd);
scanner_delete (scanner);
+ rdp_delete (parser);
+ grammar_delete (grammar);
if (tree == NULL)
{
else
{
grammar_t* gr;
- gr = g_object_new (GRAMMAR_TYPE, NULL);
+ gr = grammar_new ();
grammar_tree (gr, tree);
return gr;
}