Added 'C_C++/bison/precedence.y'
This commit is contained in:
parent
9ee94724be
commit
d0b3d211ce
31
C_C++/bison/precedence.y
Normal file
31
C_C++/bison/precedence.y
Normal file
@ -0,0 +1,31 @@
|
||||
/* @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;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user