tests/C_C++/bison/precedence.y
2024-12-10 20:40:17 +01:00

32 lines
584 B
Plaintext

/* @BAKE
bison --debug -Wcounterexamples --header=precedence.tab.h -o precedence.tab.c $@;
gcc precedence.tab.c -o precedence;
./precedence;
@STOP
*/
%{
#include <stdlib.h>
#include <stdio.h>
#include "precedence.tab.h"
int yylex() {
static int i = 0;
const int my_landscape[] = {'i', '+', 'i', '*', 'i', 0};
return my_landscape[i++];
}
void yyerror() { exit(1); }
%}
%token A B C
%left '+'
%left '*'
%%
expr: 'i'
| expr '+' expr { puts("+"); }
| expr '*' expr { puts("*"); }
;
%%
signed main() {
yydebug = 1;
yyparse();
return 0;
}