const char* val1, const char* val2, PakfireParser if_block, PakfireParser else_block);
static inline int pakfire_parser_new_declaration(
- struct pakfire_parser_declaration** declaration, const char* name, const char* value) {
+ struct pakfire_parser_declaration** declaration, const char* name, const char* value, int flags) {
if (!name)
return EINVAL;
else
d->value = NULL;
+ // Copy flags
+ d->flags = flags;
+
*declaration = d;
return 0;
%token T_END
%token T_IF
%token T_ELSE
+%token T_EXPORT
%token T_EQUALS
%token T_ASSIGN
declaration : key T_ASSIGN value T_EOL
{
- int r = pakfire_parser_new_declaration(&$$, $1, $3);
+ int r = pakfire_parser_new_declaration(&$$, $1, $3, 0);
if (r)
ABORT;
}
| key T_APPEND value T_EOL
{
// XXX HANDLE APPEND PROPERLY
- int r = pakfire_parser_new_declaration(&$$, $1, $3);
+ int r = pakfire_parser_new_declaration(&$$, $1, $3, 0);
if (r)
ABORT;
}
| key T_EOL empty_lines T_INDENT lines T_OUTDENT T_END T_EOL
{
- int r = pakfire_parser_new_declaration(&$$, $1, $5);
+ int r = pakfire_parser_new_declaration(&$$, $1, $5, 0);
if (r)
ABORT;
}
| key T_EOL empty_lines T_END T_EOL
{
- int r = pakfire_parser_new_declaration(&$$, $1, "");
+ int r = pakfire_parser_new_declaration(&$$, $1, "", 0);
+ if (r)
+ ABORT;
+ }
+ | T_EXPORT key T_ASSIGN value T_EOL
+ {
+ int r = pakfire_parser_new_declaration(&$$, $key, $value,
+ PAKFIRE_PARSER_DECLARATION_EXPORT);
if (r)
ABORT;
}