Limbajul MAKE - fisierul sursa
Limbajul MAKE - generalitati
Limbajul MAKE - elemple studiate
Limbajul MAKE - fisierul sursa
Limbajul MAKE - modul de lucru
Limbajul MAKE - rezultate obtinute
CONTACT
Download: LFA.tar.gz
Fisierul "make.lex" este urmatorul:
%{#include<math.h>
#include<stdio.h>
%}
DIGIT [0-9]
ID [a-z][a-z0-9]*
QU [\42]
LIN [\134]
%%
{DIGIT}+ {printf("INTREG: %s (%d)\n", yytext, atoi(yytext));}
{DIGIT}+"."{DIGIT}* {printf("FRACTIONAR: %s (%g)\n", yytext, atof(yytext));}
range|echo|for|do|expr|@|in|done {printf("CUVANT CHEIE: %s\n", yytext);}
{ID}.+":" {printf("TINTA SI SEPARATOR: %s\n", yytext);}
"#".* {printf("COMENTARIU: %s\n", yytext);}
{QU}.*{QU} {printf("CITAT: %s\n", yytext);}
{ID} {printf("IDENTIFICATOR: %s\n", yytext);}
"+"|"-"|"*"|"/"|"<"|">"|"<="|">="|"<>"|"!="|"=" {printf("OPERATOR: %s\n", yytext);}
"-"|";"|":"|","|"("|")"|"$"|"{"|"}"|"`" {printf("SEPARATOR/PUNCTATOR: %s\n", yytext);}
{LIN} {printf("CONTINUATOR LINIE DE COD: %s\n", yytext);}
[ \t\n]+ {;}
. {printf("CARACTER NECUNOSCUT: %s\n", yytext);}
%%
int main(int argc, char* argv[])
{++argv; --argc;
if(argc>0) yyin=fopen(argv[0],"r");
else yyin=stdin;
yylex();
}
int yywrap(void)
{return 1;
}