Programa p/ reconhecer identificadores!

5 respostas
K

Olá, sou novo aqui!

Vamos ao q interessa, tenho um exercício na facu q é o seguinte:

Fazer um programa em Java q leia o codigo de outro arquivo em Java, e mostre na tela todos os identificadores.

Ex.:

//Teste

string KOGAN;

int x=10;

Resposta: KOGAN, x.

Eu pensei em criar uma tabela e colocar nela todas as palavras reservadas do Java e tudo q não fossem identificadores (comentários, {}, argumentos entre ''xxx").

Alguem tem outra idéia???

Braço

5 Respostas

T

Para o que você quer, use java.io.StreamTokenizer e construa um java.util.TreeMap com as strings cujo tipo é StreamTokenizer.TT_WORD. A seguir, remova desse TreeMap as strings que representam as palavras-chave da linguagem (“if”, “while” etc.)
É muito fácil, basta ler a documentação dessas classes.
Atenção: não é StringTokenizer, é StreamTokenizer, e leia a documentação antes de sair fazendo. (Procure algum exemplo em www.javaalmanac.com também).

T

Outra forma é ler a especificação da linguagem (mais conhecida por JLS), e criar um analisador léxico usando o JLex ( http://www.cs.princeton.edu/~appel/modern/java/JLex/ ) ou o JFlex ( http://jflex.de/ )
Se eu fosse seu professor e você estivesse fazendo alguma matéria de compiladores eu IRIA EXIGIR isso.
Uma pegadinha na hora de escrever a especificação para o JLex ou o JFlex é a parte de comentários com múltiplas linhas.

K

Matou a charada, eh a 1a aula de lab. da materia de introducao a compiladores.

Minha ideia era usar o StringTokenizer e eliminar o que nao fosse identificador consultando uma tabela.

Vou dar uma estudada nas suas dicas, vlw.

T

Que mania, os professores de Java deviam ser proibidos de ensinarem a usar o StringTokenizer. Além de ser “deprecated” ele faz algumas coisas que você não espera (por exemplo, o que ocorre quando você tem literais string em seu código, como “Hello, World”, quando você usa o StringTokenizer?)
É [color=red]Stream[/color]Tokenizer, olhe o fonte dele em src.zip para ver que ele implementa um analisador léxico “na unha”.

K

não entendi onde é pra ver o fonte, scr.zip??? onde eu vejo isso.

Vlw

Criado 22 de agosto de 2005
Ultima resposta 24 de ago. de 2005
Respostas 5
Participantes 2