#include <grammar.h>
#include <first.h>
+#include <item.h>
#ifdef DEBUG
#include <stdio.h>
#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;
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");
}
{
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));
}