I'm trying to complete an assignment on making a lexical analyser, but I keep getting this error every time I try to make a lex.cc.y file using flex:
"fofo.l", line:13 warning rule cannot be matched.
"fofo.l", line:14 warning rule cannot be matched.
%{
#include <stdio.h>
#define Relop 1
#define Addop 2
#define Mulop 3
#define Assignop 4
#define Not 5
%}
%%
["<"|">"|"<="|">="|"=="|"!="]* { return Relop; }
["+"|"-"|"||"]* { return Addop; }
["*"|"/"|"%"|"&&"]* { return Mulop; }
["="]* { return Assignop; }
["!"]* { return Not; }
. { return -1; }
%%
int main () {
int token;
while ((token = yylex())) {
switch (token) {
case Relop: printf("Relop: %s\n", yytext); break;
case Addop: printf("Addop: %s\n", yytext); break;
case Mulop: printf("Mulop: %s\n", yytext); break;
case Assignop: printf("Assignop: %s\n", yytext); break;
case Not: printf("Not: %s\n", yytext); break;
default: printf("Error: %s not recognized\n", yytext);
}
}
}