GType grammar_get_type ();
symbol_t* symbol_new (gboolean, gint);
+symbol_t* symbol_copy (symbol_t*);
+guint symbol_hash (gconstpointer);
+gboolean symbol_equal (gconstpointer, gconstpointer);
+
+rule_t* rule_new ();
+rule_t* rule_copy (rule_t*);
+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*);
-void grammar_rule_append (rule_t*, symbol_t*);
+GList* grammar_get_rules (Grammar*, symbol_t*);
+GList* grammar_get_rule (rule_t*);
#endif