left, NULL, (gpointer*)&l))
{
l = g_malloc (sizeof (GList**));
+ *l = NULL;
g_hash_table_insert (grammar->grammar, left, l);
}
{
rule_append (rule, right);
}
+
+GList* grammar_get_rules (Grammar* grammar, symbol_t* left)
+{
+ GList** l;
+ if (!g_hash_table_lookup_extended (grammar->grammar,
+ left, NULL, (gpointer*)&l))
+ {
+ return NULL;
+ }
+ return g_list_first (*l);
+}
+
+GList* grammar_get_rule (rule_t* rule)
+{
+ return rule->right;
+}