chiark / gitweb /
changelog: start 0.6.8
[secnet.git] / conffile_internal.h
index 4c2cb36bc6714776ddb16e3f380be7a375329d5d..c2127ab011c540f00d2d1399569fc7a6e9e9b11f 100644 (file)
@@ -1,12 +1,29 @@
+/*
+ * This file is part of secnet.
+ * See README for full list of copyright holders.
+ *
+ * secnet is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * secnet is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * version 3 along with secnet; if not, see
+ * https://www.gnu.org/licenses/gpl.html.
+ */
+
 #ifndef conffile_internal_h
 #define conffile_internal_h
 
 #include <stdio.h>
 #include "secnet.h"
 
-extern FILE *yyin;
-
-typedef string_t atom_t;
+typedef cstring_t atom_t;
 
 /* Parse tree for configuration file */
 
@@ -25,6 +42,8 @@ typedef string_t atom_t;
 #define T_ALIST      17
 #define T_ERROR      20
 
+#define T_IS_PRIMITIVE(NTYPE) ((NTYPE) < T_ASSIGNMENT)
+
 struct p_node {
     uint32_t type;
     struct cloc loc;
@@ -37,13 +56,13 @@ struct p_node {
     struct p_node *r;
 };
 
-extern int yylex(void);
-extern string_t config_file;
-extern uint32_t config_lineno;
+extern cstring_t config_file;
+extern int config_lineno;
+extern int yynerrs;
 
 /* Keys in dictionaries are 'atoms', which are constructed from strings
    using this call. Atoms may be compared using '=='. */
-extern atom_t intern(string_t string);
+extern atom_t intern(cstring_t string);
 
 extern struct p_node *parse_conffile(FILE *conffile);