Implment #define

By using the recently-imported hash_table implementation.
diff --git a/glcpp.h b/glcpp.h
index 485387b..5278e1b 100644
--- a/glcpp.h
+++ b/glcpp.h
@@ -24,10 +24,27 @@
 #ifndef GLCPP_H
 #define GLCPP_H
 
-/* Generated by glcpp-lex.l to glcpp-lex.c */
+#include "hash_table.h"
 
+#define YYSTYPE char *
 #define yyscan_t void*
 
+typedef struct {
+	yyscan_t scanner;
+	struct hash_table *defines;
+} glcpp_parser_t;
+
+void
+glcpp_parser_init (glcpp_parser_t *parser);
+
+int
+glcpp_parser_parse (glcpp_parser_t *parser);
+
+void
+glcpp_parser_fini (glcpp_parser_t *parser);
+
+/* Generated by glcpp-lex.l to glcpp-lex.c */
+
 int
 yylex_init (yyscan_t *scanner);
 
@@ -40,6 +57,6 @@
 /* Generated by glcpp-parse.y to glcpp-parse.c */
 
 int
-yyparse (void *scanner);
+yyparse (glcpp_parser_t *parser);
 
 #endif