Olá boa noite, sou iniciante em programação java, e em um projeto ta faculdade o professor pediu para fazer um analisador lexico. Estou tendo dificuldade em fazer as comparações entre os arrays para determinar se uma palavra é reservada ou não. Gostaria de uma ajuda para resolver este problema. Obrigado.
Segue o codigo do programa:
package compilador;
import java.util.<em>;
import <a href="http://java.io">java.io</a>.</em>;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Lexico {
public static void main(String args[]) throws IOException {
String entrada;
int tam = 0;
String[] reservadas = {"begin", "end", "int", "String"};
String[] operadores = {"+", "-", "/", "*"};
String[] separadores = {" ", "'", "\"", ",", ".", ";"};
String aux1 = "";
String aux2 = "";
Scanner scanf = new Scanner(System.in);
ArrayList<String> guardatxt = new ArrayList<String>();
String guardastring = "";
try {
Reader read = new FileReader("C:\\Users\\aluno.COMPUTACAO\\Desktop\\Nova pasta\\teste.txt");
BufferedReader buffer = new BufferedReader(read);
while (buffer.ready()) {
guardastring += buffer.readLine();
}
for (int i = 0; i < guardastring.length(); i++) {
StringBuilder str1 = new StringBuilder();
if (Character.isLetterOrDigit(guardastring.charAt(i))) {
str1.append(guardastring.charAt(i));
i++;
while (Character.isLetterOrDigit(guardastring.charAt(i))) {
str1.append(guardastring.charAt(i));
i++;
if(i == guardastring.length()){
break;
}
}
} else if (Character.isWhitespace(guardastring.charAt(i))) {
continue;
} else {
str1.append(guardastring.charAt(i));
}
guardatxt.add(str1.toString());
}
} catch (FileNotFoundException ex) {
Logger.getLogger(Lexico.class.getName()).log(Level.SEVERE, null, ex);
}
for(int i =0; i < guardatxt.size()-1 ;i++){
for(int j = 0;j <reservadas[j].length()-1; j++){
if(reservadas[j].equals(guardatxt.get(i))){
System.out.println("é reservada: "+ reservadas[j]);
}else{
System.out.println("é variavel ");
}}
}
}
}