25 #ifndef CFG_PARSER_H_INCLUDED
26 #define CFG_PARSER_H_INCLUDED
33 typedef struct _CfgParser
44 gint (*parse)(CfgLexer *lexer, gpointer *instance, gpointer arg);
47 void (*cleanup)(gpointer instance);
59 typedef struct _CfgFlagHandler
68 typedef enum _CfgYesNoAuto
81 #define CFG_PARSER_DECLARE_LEXER_BINDING(parser_prefix, PARSER_PREFIX, root_type) \
83 parser_prefix ## lex(CFG_STYPE *yylval, CFG_LTYPE *yylloc, CfgLexer *lexer); \
86 parser_prefix ## error(const CFG_LTYPE *yylloc, CfgLexer *lexer, root_type instance, gpointer arg, const char *msg);
89 #define CFG_PARSER_IMPLEMENT_LEXER_BINDING(parser_prefix, PARSER_PREFIX, root_type) \
91 parser_prefix ## lex(CFG_STYPE *yylval, CFG_LTYPE *yylloc, CfgLexer *lexer) \
95 token = cfg_lexer_lex(lexer, yylval, yylloc); \
100 parser_prefix ## error(const CFG_LTYPE *yylloc, CfgLexer *lexer, root_type instance, gpointer arg, const char *msg) \
102 gboolean in_main_grammar = __builtin_strcmp( # parser_prefix, "main_") == 0; \
103 report_syntax_error(lexer, yylloc, cfg_lexer_get_context_description(lexer), msg, \
108 gboolean in_main_grammar);
CfgParser main_parser
Definition: cfg-parser.c:232
@ CFH_CLEAR
Definition: cfg-parser.h:56
@ CFH_SET
Definition: cfg-parser.h:55
CfgYesNoAuto
Definition: cfg-parser.h:69
@ CYNA_AUTO
Definition: cfg-parser.h:70
@ CYNA_NO
Definition: cfg-parser.h:71
@ CYNA_YES
Definition: cfg-parser.h:72
#define CFG_PARSER_DECLARE_LEXER_BINDING(parser_prefix, PARSER_PREFIX, root_type)
Definition: cfg-parser.h:81
void report_syntax_error(CfgLexer *lexer, const CFG_LTYPE *yylloc, const char *what, const char *msg, gboolean in_main_grammar)
Definition: cfg-parser.c:247
gboolean cfg_process_yesno(const gchar *yesno)
Definition: cfg-parser.c:383
gboolean cfg_parser_parse(CfgParser *self, CfgLexer *lexer, gpointer *instance, gpointer arg)
Definition: cfg-parser.c:298
gboolean cfg_process_flag(CfgFlagHandler *handlers, gpointer base, const gchar *flag)
Definition: cfg-parser.c:339
void cfg_parser_cleanup(CfgParser *self, gpointer instance)
Definition: cfg-parser.c:326
Definition: cfg-lexer.h:88
Definition: cfg-parser.h:60
guint32 param
Definition: cfg-parser.h:64
guint32 mask
Definition: cfg-parser.h:65
gint ofs
Definition: cfg-parser.h:63
const gchar * name
Definition: cfg-parser.h:61
gint op
Definition: cfg-parser.h:62
Definition: cfg-lexer.h:118
Definition: cfg-parser.h:34
gint context
Definition: cfg-parser.h:37
const gchar * name
Definition: cfg-parser.h:38
gint * debug_flag
Definition: cfg-parser.h:36
CfgLexerKeyword * keywords
Definition: cfg-parser.h:41
LogMessage * msg
Definition: test_rename.c:35