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);
}