1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
%lex
%%
\s+ {}
(global|local|integer|float) { return yytext; }
[a-zA-Z_]\w* { return 'id'; }
. { return yytext; }
/lex
%%
D
: C T L
;
C
: global
| local
;
T
: integer
| float
;
L
: L ',' id {
console.log("L -> L ',' id ("+yytext+")");
console.log($id + ' is of type ' + $0);
console.log($1 + ' is of class ' + $-1);
}
| id {
console.log("L -> id ("+yytext+")");
console.log($id + ' is of type ' + $0);
console.log($1 + ' is of class ' + $-1);
}
;
%%
|