From: Thadeu Lima de Souza Cascardo Date: Wed, 26 Oct 2005 12:28:51 +0000 (+0000) Subject: Update to branch lr1 X-Git-Tag: cascardo@tlscascardo--private,libgrammatic--regular--0.1--base-0~5 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fgrammar.git;a=commitdiff_plain;h=ccc2274465fa1d9c23dcb6fa8a85d5c99b949aa7;hp=33139d5104e17ecbcfa52d09cf80e40fdc8c652f Update to branch lr1 Patches applied: * cascardo@tlscascardo--private/libgrammatic--lr1--0.1--patch-6 Fixed some building issues git-archimport-id: cascardo@tlscascardo--private/libgrammatic--nogobject-lr1--0.1--patch-7 --- diff --git a/item.h b/item.h index 4924562..0457099 100644 --- a/item.h +++ b/item.h @@ -1,6 +1,9 @@ #ifndef ITEM_H #define ITEM_H +#include +#include + typedef struct { symbol_t* left; @@ -9,6 +12,6 @@ typedef struct symbol_t* lookahead; } item_t; -GHashTable* item_set_collection (Grammar*, GHashTable*, symbol_t*); +GHashTable* item_set_collection (grammar_t*, GHashTable*, symbol_t*); #endif diff --git a/lr1.c b/lr1.c index c36c64d..2124bb1 100644 --- a/lr1.c +++ b/lr1.c @@ -1,5 +1,6 @@ #include #include +#include enum { PARSER_SHIFT, PARSER_REDUCE, PARSER_ACCEPT }; @@ -235,7 +236,7 @@ gpointer lr1_build (lr1_t* parser) for (l = grammar_get_rule (transition->right); l != NULL; - l = g_list_previous (l)) + l = g_list_next (l)) { gpointer attr; if (!lr1_pop (parser, &attr)) diff --git a/lr1.h b/lr1.h index de4faa8..4f665aa 100644 --- a/lr1.h +++ b/lr1.h @@ -12,7 +12,7 @@ transition_t* transition_accept_new (); void transition_delete (transition_t*); lr1_t* lr1_new (nextcb, gpointer); void lr1_delete (lr1_t*); -void lr1_add (lr1_t*, gint, symbol_t*, transition_t*); +gboolean lr1_add (lr1_t*, gint, symbol_t*, transition_t*); void lr1_push (lr1_t*, gint, gpointer); gpointer lr1_build (lr1_t*);