lex/main.lex

30 lines
600 B
Plaintext
Raw Normal View History

2023-11-21 13:42:23 +00:00
%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
}