[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
"Pegadinha" com o flex
- Subject: "Pegadinha" com o flex
- From: Nelson Posse Lago <lago@that.com.br>
- Date: Sat, 8 Jun 2002 14:34:03 -0300
Ois,
Quem quiser fazer experiencias com o flex vai descobrir que, alem do que
foi visto em aula, e' preciso colocar no inicio do arquivo ".yy" uma linha
assim:
%option noyywrap
Normalmente, o analisador gerado pelo flex (atraves da funcao yylex()) vai
lendo a entrada padrao, ou o arquivo que foi definido como sendo yyin,
ate' o fim-de-arquivo. Quando o fim-de-arquivo e' encontrado, ele chama a
funcao yywrap(). Essa funcao deve ser definida pelo usuario. Se ela
retorna 1, yylex() termina; se ela retorna 0, a funcao yylex() "entende"
que yyin foi redefinido para um novo arquivo, e recomeca a analise desse
arquivo. Entao, se voce quiser um analisador que rode uma vez ate' o fim
de arquivo e retorne, voce deve definir uma funcao yywrap() que sempre
retorne 1:
{%
int yywrap () { return 1; };
%}
Mas, se voce usar "%option noyywrap", voce nao precisa definir essa
funcao: o yylex() retorna incondicionalmente.
Ate' +
Nelson
--
Science is what we can tell a computer. Art is everything else. --- D.E.Knuth