Makefile
lc : y.tab.o lex.yy.o
cc -o lc y.tab.o lex.yy.o -lfl
rm *.o
rm *.c
y.tab.o : y.tab.c
cc -c y.tab.c
y.tab.c y.tab.h : lc.y
yacc -d lc.y
lex.yy.o : lex.yy.c y.tab.h
cc -c lex.yy.c
lex.yy.c : lc.l
flex lc.l
Lex
%{
#include "y.tab.h"
%}
%%
[0-9]+ return(INTEIRO);
\( return('(');
\) return(')');
\; return(';');
[ \t\n]+ ;
. return(ERRO);
Yacc
%token ERRO INTEIRO
%%
Lcomp : '(' Conteudo ')'
| '(' ')';
Conteudo : INTEIRO
| INTEIRO ';' Conteudo ;
%%
int main()
{
yyparse();
}
int yyerror()
{
printf("Syntax error...");
return(0);
}