Construir um Compilador

Tudo bem, pessoal?!

Eh o seguinte…to construindo um compilador (parte lexica por enquanto).
E eu tive duvidas de como usar o HashSet…para colocar as palavras reservadas
Eu usei assim…mas dava erro…dizendo q nao existia o pacote nomes…oO?!
Criei uma classe pra colocar essa tabela (nao sei pq, mas blz) q chama TipoTokens (mas acho q nao tem a ver com o problema)

Set palavras = new HashSet();
palavras.add(“if”);
palavras.add(“case”);
palavras.add(“while”);

O q falta aii?! Poderiam me ajudar?!

Outra coisa: Como fazer pra ler um arquivo qualquer (sem especificar nada…nem nome nem local) e verificar se ele eh palavra reservada ou um identificador, numero…etc…e coloca em um arquivo de saida qualquer o resultado?! Para as palavras reservadas eh so verificar na tabela (q nao deu certo)…agora pra identificador, numero, etc…eh com maquinas de estado e talz…mas o problema eh: leio caracter por caracter ou leio o arquivo todo?!

PS: No caso de comentario…ele tem q ignorar ate o final dele, ou seja, ate qts linhas forem de comentario.

Agradeço quem puder me ajudar…to ficando doido ja!

abraços!

Um analisador léxico normalmente lê um arquivo um caracter de cada vez. Use um BufferedReader para acelerar seu processamento. No seu caso, provavelmente você também terá de encapsular seu BufferedReader em um PushbackReader (http://download-llnw.oracle.com/javase/1.4.2/docs/api/java/io/PushbackReader.html ) porque em algumas situações é mais fácil você voltar um caracter para trás.

Se quer desenvolver um compilador comece pela teoria depois por aqui:

http://inst.eecs.berkeley.edu/~cs164/sp05/docs/jbison/bison.html#Top

Oi, quando for postar código, por favor, siga essas dicas:
http://www.guj.com.br/posts/list/50115.java

Quanto ao seu problema com o HashSet. Ele precisa de 2 imports:

import java.util.Set; import java.util.HashSet;

Você tem certeza que usou esses dois?

Outra coisa, dar um tipo para o Set, como <String>, só irá funcionar se você estiver usando uma versão de Java superior a 5.

[quote=ViniGodoy]Oi, quando for postar código, por favor, siga essas dicas:
http://www.guj.com.br/posts/list/50115.java

Quanto ao seu problema com o HashSet. Ele precisa de 2 imports:

import java.util.Set; import java.util.HashSet;

Você tem certeza que usou esses dois?

Outra coisa, dar um tipo para o Set, como <String>, só irá funcionar se você estiver usando uma versão de Java superior a 5.[/quote]

Valeu pela dica Vini…
Mas entaoo…fiz exatamente os 2 imports (como uso o netbeans ele faz isso automaticamente)…
mas mesmo assim nao funciona…
Vou ver o q consigo fazer…mas se tiverem algum outra ideia me avisem…

Seria melhor postar:
a) O código;
b) A mensagem de erro;
c) Um indicativo de que linha o erro acusa;