%type <string> word;
%type <string> words;
-%type <parser> top;
+%type <parser> grammar;
%type <parser> item;
%type <parser> statement;
%type <parser> block;
%%
-top : top item
+top : grammar
{
- $$ = merge_parsers($1, $2);
+ merge_parsers(parser, $1);
+
+ pakfire_parser_unref($1);
}
- | item
+ ;
+
+grammar : grammar item
{
- $$ = merge_parsers(parser, $1);
+ $$ = merge_parsers($1, $2);
+
+ //pakfire_parser_unref($1);
+ //pakfire_parser_unref($2);
}
+ | item
;
item : statement
end : T_END T_EOL;
-if_stmt : if variable T_EQUALS variable T_EOL top else top end
+if_stmt : if variable T_EQUALS variable T_EOL grammar else grammar end
{
$$ = make_if_stmt(parser, OP_EQUALS, $2, $4, $6, $8);
//pakfire_parser_unref($6);
//pakfire_parser_unref($8);
}
- | if variable T_EQUALS variable T_EOL top end
+ | if variable T_EQUALS variable T_EOL grammar end
{
$$ = make_if_stmt(parser, OP_EQUALS, $2, $4, $6, NULL);
//pakfire_parser_unref($6);
};
-block : block_opening top block_closing
+block : block_opening grammar block_closing
{
$$ = $2;
};