Tutorial de JFLEX - DECOM-UFOP

Propaganda
Tutorial de JFLEX
1º Passo - Criação do arquivo .flex
O programa JFlex serve para se criar uma classe Java que faz a análise léxica de
qualquer arquivo texto. Para que o JFlex crie esta classe, devemos indicar para ele
um arquivo .flex, que contém as regras da construção desta classe. Este é um
exemplo de arquivo para ser utilizado no JFlex:
Teste.flex
%%
<<- Indica o início das pré-definições
%standalone
<<- Faz com que a classe tenha uma função "main"
%class Teste
<<- Indica o nome da classe a ser gerada
%{
int numA=0;
<<- Contador para o número de letras A ou a
%}
%eof{
<<- Executar no final do arquivo texto
System.out.println("Numeros de A's = " + numA);
%eof}
%%
<<- Aqui começam as regras da linguagem...
[a|A]
{ numA++; System.out.println("A"); }
[ \n\t\r] { // ignora }
<<- "a" ou "A"
<<- Espaço, pula-linha, tabulações...
((0|1)*)
{ System.out.println("Bin"); }
.
{ // ignora }
<<- 0 ou 1 fechamento
<<- Qualquer outra coisa
Repare que este arquivo é composto de duas partes distintas, separadas por
"%%". A primeira parte contém todas as declarações globais da classe que vai ser
construída, enquanto que a segunda parte possue as regras do analisador léxico.
Ainda poderia ter uma terceira parte, onde definiríamos o código em Java de
funções criadas por nós, como por exemplo se fizéssemos uma função que fosse
escrevendo em um arquivo texto, etc.
2º Passo - Utilizando o JFlex
O próximo passo é executar o JFlex, para que ele gere o arquivo Teste.java. Se
você instalou corretamente o JFlex, deverá indicar para o programa o caminho do
seu arquivo Teste.flex.
Clique em "Generate" para criar o arquivo, e você verá a seguinte mensagem:
Isto significa que o arquivo foi criado com sucesso. Repare que foi criado um
Autômato Não-Determinísco primeiramente, depois ele converteu para um
Autômato Finito Determinísco, e depois minimizou os estados, o que resultou em
um grafo com 10 estados. Mas e daí, não é verdade? O que importa é que o JFlex
gerou para você um arquivo Teste.java, que você pode compilar e executar.
3º Passo - Compilando e executando o Teste.java
Para compilar e testar o arquivo gerado é muito fácil, pessoal. Eu utilizei o
JCreator, mas você pode utilizar qualquer outro método, inclusive compilar e
executar via linha de comando.
Abra o JCreator e crie um Projeto vazio no diretório onde está o Teste.java. Se
estiver tudo certo, o arquivo estará aparecendo na aba FileView do JCreator:
Se você compilar e executar o arquivo, verá a seguinte mensagem:
Isto porque, na função main, ele espera que você entre com o nome do arquivo
texto a ser analizado pelo programa. Criando um arquivo texto qualquer no
mesmo diretório do Teste.class, você pode passar o nome dele como parâmetro.
Para configurar a execução do Teste.class com parâmetros, devemos configurar o
JCreator. Entre no menu Project -> Project Properties, entre na aba JDKTools
e escolha a opção Run Application no combo "Select Tool Type". Dois cliques
no <default>, na aba Parameters ative a opção "Prompt for main method
arguments".
Quando você executar o programa, vai aparecer uma janela perguntando o nome
do arquivo, digite Teste.txt e você deverá obter o seguinte resultado:
Download