Removed GObject support from grammar
authorThadeu Lima de Souza Cascardo <cascardo@dcc.ufmg.br>
Fri, 7 Oct 2005 15:39:25 +0000 (15:39 +0000)
committerThadeu Lima de Souza Cascardo <cascardo@dcc.ufmg.br>
Fri, 7 Oct 2005 15:39:25 +0000 (15:39 +0000)
Removed GObject support from grammar type.

git-archimport-id: cascardo@tlscascardo--private/libgrammatic--nogobject--0.1--patch-1

bnf.c
bnf.h
first.c
first.h
grammar.c
grammar.h
item.c

diff --git a/bnf.c b/bnf.c
index 8d960f8..f2d01e9 100644 (file)
--- a/bnf.c
+++ b/bnf.c
@@ -126,7 +126,7 @@ enum
     BNF_NONTERMINAL
   };
 
-void grammar_tree (Grammar* grammar, GNode* tree)
+void grammar_tree (grammar_t* grammar, GNode* tree)
 {
 
   GNode* child_rules;
@@ -233,10 +233,10 @@ void grammar_tree (Grammar* grammar, GNode* tree)
 
 }
 
-Grammar* grammar_load (char* filename)
+grammar_t* grammar_load (char* filename)
 {
 
-  Grammar* grammar;
+  grammar_t* grammar;
   rule_t* rule;
 
   scanner_t* scanner;
@@ -250,7 +250,7 @@ Grammar* grammar_load (char* filename)
   scanner = scanner_new (read, fd);
 
   parser = rdp_new (scanner_next, scanner, BNF_GRAMMAR);
-  grammar = (Grammar*) parser;
+  grammar = (grammar_t*) parser;
 
   rule = grammar_rule_new (grammar, symbol_new (FALSE, BNF_GRAMMAR));
   rule_append (rule, symbol_new (FALSE, BNF_RULES));
@@ -289,7 +289,7 @@ Grammar* grammar_load (char* filename)
     }
   else
     {
-      Grammar* gr;
+      grammar_t* gr;
       gr = g_object_new (GRAMMAR_TYPE, NULL);
       grammar_tree (gr, tree);
       return gr;
diff --git a/bnf.h b/bnf.h
index 5c602a8..cdc080c 100644 (file)
--- a/bnf.h
+++ b/bnf.h
@@ -3,6 +3,6 @@
 
 #include <grammar.h>
 
-Grammar* grammar_load (char* filename);
+grammar_t* grammar_load (char* filename);
 
 #endif
diff --git a/first.c b/first.c
index e3af868..040a04c 100644 (file)
--- a/first.c
+++ b/first.c
@@ -457,7 +457,7 @@ void first_check (gpointer key, gpointer val, gpointer data)
  * We should iterate through the rules for each nonterminal until only
  * terminals are known to be in the first set of it.
  */
-GHashTable* grammar_first (Grammar* grammar)
+GHashTable* grammar_first (grammar_t* grammar)
 {
   GHashTable* first;
   gboolean stop;
diff --git a/first.h b/first.h
index 29bf501..47a6200 100644 (file)
--- a/first.h
+++ b/first.h
@@ -3,7 +3,7 @@
 
 #include <grammar.h>
 
-GHashTable* grammar_first (Grammar*);
+GHashTable* grammar_first (grammar_t*);
 GList* first_get (GHashTable*, symbol_t*);
 GList* first_rule (GHashTable*, rule_t*);
 
index d716065..ef21141 100644 (file)
--- a/grammar.c
+++ b/grammar.c
@@ -155,55 +155,23 @@ void rules_delete (GList** list)
   g_free (list);
 }
 
-static void grammar_init (GTypeInstance* instance, gpointer g_class)
+grammar_t* grammar_new ()
 {
-  Grammar* self = GRAMMAR(instance);
+  grammar_t* grammar;
+  grammar = g_malloc (sizeof (grammar_t*));
   self->grammar = g_hash_table_new_full (symbol_hash, symbol_equal,
                                         g_free,
                                         (GDestroyNotify) rules_delete);
+  return grammar;
 }
 
-static void grammar_finalize (GObject* obj)
+void grammar_delete (grammar_t* grammar)
 {
-  GrammarClass* klass;
-  GObject* parent_class;
-  Grammar* self;
-  self = GRAMMAR(obj);
-  g_hash_table_destroy (self->grammar);
-  klass = GRAMMAR_GET_CLASS(obj);
-  parent_class = g_type_class_peek_parent (klass);
-  G_OBJECT_CLASS(parent_class)->finalize (obj);
+  g_hash_table_destroy (grammar->grammar);
+  g_free (grammar);
 }
 
-static void grammar_class_init (GrammarClass* klass)
-{
-  GObjectClass* gobj_class = G_OBJECT_CLASS(klass);
-  gobj_class->finalize = grammar_finalize;
-}
-
-GType grammar_get_type ()
-{
-  static GType type = 0;
-  if (type == 0)
-    {
-      static const GTypeInfo info =
-       {
-         sizeof (GrammarClass),
-         NULL,
-         NULL,
-         (GClassInitFunc)grammar_class_init,
-         NULL,
-         NULL,
-         sizeof (Grammar),
-         0,
-         grammar_init
-       };
-      type = g_type_register_static (G_TYPE_OBJECT, "GrammarType", &info, 0);
-    }
-  return type;
-}
-
-rule_t* grammar_rule_new (Grammar* grammar, symbol_t* left)
+rule_t* grammar_rule_new (grammar_t* grammar, symbol_t* left)
 {
 
   GList** l;
@@ -225,7 +193,7 @@ rule_t* grammar_rule_new (Grammar* grammar, symbol_t* left)
 
 }
 
-GList* grammar_get_rules (Grammar* grammar, symbol_t* left)
+GList* grammar_get_rules (grammar_t* grammar, symbol_t* left)
 {
   GList** l;
   if (!g_hash_table_lookup_extended (grammar->grammar,
index f945330..4d13b9e 100644 (file)
--- a/grammar.h
+++ b/grammar.h
@@ -2,20 +2,6 @@
 #define GRAMMAR_H
 
 #include <glib.h>
-#include <glib-object.h>
-
-#define GRAMMAR_TYPE            (grammar_get_type ())
-#define GRAMMAR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-                                    GRAMMAR_TYPE, Grammar))
-#define GRAMMAR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), \
-                                    GRAMMAR_TYPE, GrammarClass))
-#define IS_GRAMMAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-                                    GRAMMAR_TYPE))
-#define IS_GRAMMAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-                                    GRAMMAR_TYPE))
-#define GRAMMAR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-                                    GRAMMAR_TYPE, GrammarClass))
-
 
 typedef gint (*nextcb) (gpointer, gpointer*);
 
@@ -28,15 +14,8 @@ typedef struct
 typedef struct _rule rule_t;
 typedef struct
 {
-  GObject parent;
   GHashTable* grammar;
-} Grammar;
-typedef struct
-{
-  GObjectClass parent;
-} GrammarClass;
-
-GType grammar_get_type ();
+} grammar_t;
 
 symbol_t* symbol_new (gboolean, GQuark);
 symbol_t* symbol_copy (symbol_t*);
@@ -53,9 +32,10 @@ symbol_t* rule_pop (rule_t*);
 void rule_append (rule_t*, symbol_t*);
 void rule_delete (rule_t*);
 
-
-rule_t* grammar_rule_new (Grammar*, symbol_t*);
-GList* grammar_get_rules (Grammar*, symbol_t*);
+grammar_t* grammar_new ();
+rule_t* grammar_rule_new (grammar_t*, symbol_t*);
+GList* grammar_get_rules (grammar_*, symbol_t*);
 GList* grammar_get_rule (rule_t*);
+void grammar_delete (grammar_t*);
 
 #endif
diff --git a/item.c b/item.c
index 8634d90..c089253 100644 (file)
--- a/item.c
+++ b/item.c
@@ -173,7 +173,7 @@ void item_set_print (GHashTable* item_set)
 }
 #endif
 
-void item_set_closure_step (GHashTable* item_set, Grammar* grammar,
+void item_set_closure_step (GHashTable* item_set, grammar_t* grammar,
                            item_t* item)
 {
   if (item->dot != NULL)
@@ -198,7 +198,7 @@ void item_set_closure_step (GHashTable* item_set, Grammar* grammar,
     }
 }
 
-GHashTable* item_set_closure (GHashTable* item_set, Grammar* grammar)
+GHashTable* item_set_closure (GHashTable* item_set, grammar_t* grammar)
 {
   int size;
   int last_size;
@@ -220,7 +220,7 @@ GHashTable* item_set_closure (GHashTable* item_set, Grammar* grammar)
   return item_set;
 }
 
-GHashTable* item_set_goto (GHashTable* item_set, Grammar* grammar,
+GHashTable* item_set_goto (GHashTable* item_set, grammar_t* grammar,
                           symbol_t* symbol)
 {
   GList* l;
@@ -349,7 +349,7 @@ void item_collection_print (GHashTable* collection)
 }
 #endif
 
-GHashTable* item_collection_goto (GHashTable* collection, Grammar* grammar,
+GHashTable* item_collection_goto (GHashTable* collection, grammar_t* grammar,
                                  GHashTable* item_set, symbol_t* symbol)
 {
   GHashTable* symbols;
@@ -380,7 +380,7 @@ GHashTable* item_collection_goto (GHashTable* collection, Grammar* grammar,
     }
 }
 
-void item_set_collection (Grammar* grammar, symbol_t* start)
+void item_set_collection (grammar_t* grammar, symbol_t* start)
 {
   GHashTable* collection;
   GHashTable* item_set;