flex und case sensitive umgehen (compiler-compiler tools)

21/09/2008 - 10:18 von Jens Kallup | Report spam
Hallo NG,

ich bin gerade dabei "flex" dazu zu bewegen, das gross und kleinschreibung
gleicher massen genutzt werden kann.
Also z.B. PRINT auch als print oder PrinT geschrieben werden kann.
Hier die *.l Datei:

%{
#include "y.tab.h"
extern int yylval;
%}
%%
"=" { return EQ; }
"!=" { return NE; }
"<" { return LT; }
"<=" { return LE; }
">" { return GT; }
">=" { return GE; }
"+" { return PLUS; }
"-" { return MINUS; }
"*" { return MULT; }
"/" { return DIVIDE; }
")" { return RPAREN; }
"(" { return LPAREN; }
":=" { return ASSIGN; }
";" { return SEMICOLON; }
"IF" { return IF; }
"THEN" { return THEN; }
"ELSE" { return ELSE; }
"ENDIF" { return END_IF; }
"WHILE" { return WHILE; }
"DO" { return DO; }
"ENDDO" { return ENDDO; }
"PRINT" { return PRINT; }
[0-9]+ { yylval = atoi(yytext); return NUMBER; }
[a-z] { yylval = yytext[0] - 'a'; return NAME; }
\ { ; }
{ nextline(); }
\t { ; }
"//".* { nextline(); }
. { yyerror("illegal token"); }
%%
#ifndef yywrap
yywrap() { return 1; }
#endif



Danke für Infos
Jens
 

Lesen sie die antworten

#1 Markus Schaaf
21/09/2008 - 11:43 | Warnen spam
Jens Kallup schrieb:

ich bin gerade dabei "flex" dazu zu bewegen, das gross und kleinschreibung
gleicher massen genutzt werden kann.
Also z.B. PRINT auch als print oder PrinT geschrieben werden kann.
Hier die *.l Datei:

"PRINT" { return PRINT; }



(?i:print) { return PRINT; }

usw.

Ähnliche fragen