]> Dogcows Code - chaz/openbox/blobdiff - openbox/parse.h
change how rc parsing will work. a=b will be parsed in any [section] and given to...
[chaz/openbox] / openbox / parse.h
index 1b72667d0597c3ac11efb8d9f5b7b250d433182d..d77b6924a3c8539dd9958e6347c2b65166bf3217 100644 (file)
@@ -2,24 +2,28 @@
 #define __parse_h
 
 #include <glib.h>
-#include "y.tab.h"
+#include "parse.tab.h"
 
 typedef enum {
-    TOKEN_REAL,
-    TOKEN_INTEGER,
-    TOKEN_STRING,
-    TOKEN_IDENTIFIER,
-    TOKEN_BOOL,
-    TOKEN_LBRACKET   = '(',
-    TOKEN_RBRACKET   = ')',
+    TOKEN_REAL       = REAL,
+    TOKEN_INTEGER    = INTEGER,
+    TOKEN_STRING     = STRING,
+    TOKEN_IDENTIFIER = IDENTIFIER,
+    TOKEN_BOOL       = BOOL,
+    TOKEN_LIST,
     TOKEN_LBRACE     = '{',
     TOKEN_RBRACE     = '}',
-    TOKEN_EQUALS     = '=',
     TOKEN_COMMA      = ',',
     TOKEN_NEWLINE    = '\n'
 } ParseTokenType;
 
-typedef void (*ParseFunc)(ParseTokenType type, union ParseToken token);
+typedef struct {
+    ParseTokenType type;
+    union ParseTokenData data;
+} ParseToken;
+
+typedef void (*ParseFunc)(ParseToken *token);
+typedef void (*AssignParseFunc)(char *name, ParseToken *value);
 
 void parse_startup();
 void parse_shutdown();
@@ -29,11 +33,11 @@ void parse_shutdown();
 */
 void parse_rc();
 
-void parse_reg_section(char *section, ParseFunc func);
+void parse_reg_section(char *section, ParseFunc func, AssignParseFunc afunc);
 
 
 /* Free a parsed token's allocated memory */
-void parse_free_token(ParseTokenType type, union ParseToken token);
+void parse_free_token(ParseToken *token);
 
 /* Display an error message while parsing.
    found in parse.yacc */
This page took 0.022898 seconds and 4 git commands to generate.