Update to branch lr1
[cascardo/grammar.git] / bnf.c
diff --git a/bnf.c b/bnf.c
index f2d01e9..44cc72e 100644 (file)
--- a/bnf.c
+++ b/bnf.c
@@ -240,7 +240,7 @@ grammar_t* grammar_load (char* filename)
   rule_t* rule;
 
   scanner_t* scanner;
-  Rdp* parser;
+  rdp_t* parser;
   GNode* tree;
 
   int fd;
@@ -249,8 +249,8 @@ grammar_t* grammar_load (char* filename)
 
   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));
@@ -282,6 +282,8 @@ grammar_t* grammar_load (char* filename)
 
   close (fd);
   scanner_delete (scanner);
+  rdp_delete (parser);
+  grammar_delete (grammar);
 
   if (tree == NULL)
     {
@@ -290,7 +292,7 @@ grammar_t* grammar_load (char* filename)
   else
     {
       grammar_t* gr;
-      gr = g_object_new (GRAMMAR_TYPE, NULL);
+      gr = grammar_new ();
       grammar_tree (gr, tree);
       return gr;
     }