30 lines
600 B
Plaintext
30 lines
600 B
Plaintext
|
%option noyywrap
|
||
|
%{
|
||
|
#include<stdio.h>
|
||
|
#define YYDEBUG 1
|
||
|
int yyLineNumber = 1;
|
||
|
%}
|
||
|
|
||
|
%%
|
||
|
[a-zA-Z]+ myprint("Identifier"); //matcht auch if und IF!
|
||
|
IF|if myprint("keyword");
|
||
|
\n yyLineNumber++;
|
||
|
[ \t] //nix machen, "spaces und tabs überlesen"
|
||
|
|
||
|
. myprint("unknown Symbol");
|
||
|
%%
|
||
|
|
||
|
int main()
|
||
|
{
|
||
|
printf("Programm eingeben: \n");
|
||
|
yylex();
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int myprint(char token[]) {
|
||
|
printf("\nZeile %d >>> ", yyLineNumber);
|
||
|
|
||
|
printf("%s ", token);
|
||
|
printf("%s\n", yytext); // yytext: String, der gerade gelesen wurde
|
||
|
}
|