chiark / gitweb /
Add a man page.
[secnet.git] / conffile.y
index b6b246c91fbb2dfa09adde21cd3723dcfb26d772..7837abe651365c12e460f4492db4f39da5f825d6 100644 (file)
@@ -8,8 +8,15 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+/* Bison stupidly redeclares malloc/free unless they are #defined
+ * (or a bunch of madder conditions) */
+#ifndef malloc
+# define malloc malloc
+# define free free
+#endif
 #include "secnet.h"
 #include "conffile_internal.h"
+#include "conffile.yy.h"
 #include "util.h"
 #define YYERROR_VERBOSE
 
@@ -17,13 +24,13 @@ static struct p_node *node(uint32_t type, struct p_node *l, struct p_node *r);
 
 static struct p_node *result;
 
-static void yyerror(char *s);
+static void yyerror(const char *s);
 
 %}
 
 %%
 
-input:           assignments { result = $1; }
+input:           assignments { result = $1; $$=result; }
                ;
 
 assignments:     assignments assignment { $$=node(T_ALIST, $2, $1); }
@@ -73,7 +80,7 @@ item:           TOK_STRING
 
 %%
 
-static void yyerror(char *s)
+static void yyerror(const char *s)
 {
        Message(M_FATAL,"config file %s line %d: %s\n",config_file,
                config_lineno,s);