X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fgrammar.git;a=blobdiff_plain;f=item.c;h=8f4f4cfbeb5cffa6a1df052f80f830f7f9981f0e;hp=eef188d8917fec16ec33317e73d3091388c9fede;hb=bedde43d47f11c6b5a2b3401c90d986a0ccef0a9;hpb=cdbf495ba8308a218b8e2ee3ea8b6b9559471b2d diff --git a/item.c b/item.c index eef188d..8f4f4cf 100644 --- a/item.c +++ b/item.c @@ -1,17 +1,10 @@ #include #include +#include #ifdef DEBUG #include #endif -typedef struct -{ - symbol_t* left; - rule_t* right; - GList* dot; - symbol_t* lookahead; -} item_t; - item_t* item_new (symbol_t* left, rule_t* right, symbol_t* lookahead) { item_t* item; @@ -354,13 +347,13 @@ GHashTable* item_collection_lookup (GHashTable* collection, return symbols; } -#define HASH_ITEM_SET(item_set) (((GPOINTER_TO_INT(item_set) & 0x3f00) >> 8)) +#define HASH_ITEM_SET(item_set) (item_set) #ifdef DEBUG void item_collection_print_each (gpointer key, gpointer val, gpointer data) { GHashTable* item_set; item_set = (GHashTable*) key; - fprintf (stdout, "Item %x:\n", HASH_ITEM_SET(key)); + fprintf (stdout, "Item %p:\n", HASH_ITEM_SET(key)); item_set_print (item_set); fprintf (stdout, "\n"); } @@ -369,7 +362,7 @@ void item_set_print_goto (gpointer key, gpointer val, gpointer data) { symbol_t* symbol; symbol = (symbol_t*) key; - fprintf (stdout, "GOTO (%x, %s) =\t %x\n", HASH_ITEM_SET(data), + fprintf (stdout, "GOTO (%p, %s) =\t %p\n", HASH_ITEM_SET(data), g_quark_to_string (symbol->value), HASH_ITEM_SET(val)); }