]> Dogcows Code - chaz/openbox/blobdiff - openbox/parse.h
ECKS EM ELL
[chaz/openbox] / openbox / parse.h
index f2d22f817e201e8eb76e7f3a9a5a227333c2eadc..199e8104d7d1abd81e232a97a1d308ec12bb606e 100644 (file)
@@ -1,42 +1,38 @@
 #ifndef __parse_h
 #define __parse_h
 
+#include "action.h"
+
+#include <libxml/parser.h>
 #include <glib.h>
-#include "parse.tab.h"
-
-typedef enum {
-    TOKEN_REAL       = REAL,
-    TOKEN_INTEGER    = INTEGER,
-    TOKEN_STRING     = STRING,
-    TOKEN_IDENTIFIER = IDENTIFIER,
-    TOKEN_BOOL       = BOOL,
-    TOKEN_LBRACKET   = '(',
-    TOKEN_RBRACKET   = ')',
-    TOKEN_LBRACE     = '{',
-    TOKEN_RBRACE     = '}',
-    TOKEN_EQUALS     = '=',
-    TOKEN_COMMA      = ',',
-    TOKEN_NEWLINE    = '\n'
-} ParseTokenType;
-
-typedef void (*ParseFunc)(ParseTokenType type, union ParseToken token);
+
+typedef void (*ParseCallback)(xmlDocPtr doc, xmlNodePtr node, void *data);
 
 void parse_startup();
 void parse_shutdown();
 
-/* Parse the RC file
-   found in parse.yacc
-*/
-void parse_rc();
+void parse_register(const char *tag, ParseCallback func, void *data);
+
+void parse_config();
+
+void parse_tree(xmlDocPtr doc, xmlNodePtr node, void *nothing);
+
+
+/* helpers */
+
+xmlNodePtr parse_find_node(const char *tag, xmlNodePtr node);
 
-void parse_reg_section(char *section, ParseFunc func);
+char *parse_string(xmlDocPtr doc, xmlNodePtr node);
+int parse_int(xmlDocPtr doc, xmlNodePtr node);
+gboolean parse_bool(xmlDocPtr doc, xmlNodePtr node);
 
+gboolean parse_contains(const char *val, xmlDocPtr doc, xmlNodePtr node);
+gboolean parse_attr_contains(const char *val, xmlNodePtr node,
+                             const char *name);
 
-/* Free a parsed token's allocated memory */
-void parse_free_token(ParseTokenType type, union ParseToken token);
+gboolean parse_attr_string(const char *name, xmlNodePtr node, char **value);
+gboolean parse_attr_int(const char *name, xmlNodePtr node, int *value);
 
-/* Display an error message while parsing.
-   found in parse.yacc */
-void yyerror(char *err);
+Action *parse_action(xmlDocPtr doc, xmlNodePtr node);
 
 #endif
This page took 0.026777 seconds and 4 git commands to generate.