* Método que me permite reconocer el identificador de clase
*
* @return true si es identificador de clase
* @false si no es ientificador de clase
*/
private boolean isIdentificadorDeClase() {
int backPos = posActual;
int filaIniToken = filaActual;
int columnaInicialToken = columnaActual;
String lexema = "";
if ( Character.isLetter(caracterActual)==false && caracterActual!='_' && caracterActual!='$') {
return false;
}
lexema += caracterActual;
siguienteCaracter();
if (Character.isLetter((caracterActual)) || caracterActual=='_' || caracterActual=='$') {
lexema += caracterActual;
siguienteCaracter();
while (Character.isLetter((caracterActual)) || caracterActual=='_' || caracterActual=='$') {
if(texto.charAt(posActual+1)=='{'){
lexema += caracterActual;
System.out.println("llave"+posActual);
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Clase", lexema);
return true;
}
lexema += caracterActual;
siguienteCaracter();
}
}
else {
bactracking(backPos, filaIniToken,
columnaInicialToken);
return false;
}
return false;
}
/**
* Método que me permite reconocer el identificador de clase
*
* @return true si es identificador de clase
* @false si no es ientificador de clase
*/
private boolean isIdentificadorDe_Clase_Metodo_Variable() {
int backPos = posActual;
int filaIniToken = filaActual;
int columnaInicialToken = columnaActual;
String lexema = "";
if ( Character.isLetter(caracterActual)==false && caracterActual!='_' && caracterActual!='$') {
return false;
}
if(texto.charAt(posActual+1)!='(' && texto.charAt(posActual+1)!='{' &&
Character.isLetter((texto.charAt(posActual+1)))==false &&
Character.isDigit((texto.charAt(posActual+1)))==false && texto.charAt(posActual+1)!='_'
&& texto.charAt(posActual+1)!='$'){
lexema += caracterActual;
siguienteCaracter();
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Variable", lexema);
return true;
}
if(texto.charAt(posActual+1)=='{'){
lexema += caracterActual;
siguienteCaracter();
System.out.println("llave"+posActual);
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Clase", lexema);
return true;
}
if(texto.charAt(posActual+1)=='('){
lexema += caracterActual;
siguienteCaracter();
System.out.println("llave"+posActual);
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Metodo", lexema);
return true;
}
lexema += caracterActual;
siguienteCaracter();
if (Character.isLetter((caracterActual)) ||Character.isDigit((caracterActual)) || caracterActual=='_' || caracterActual=='$') {
while (Character.isLetter((caracterActual)) ||(Character.isDigit(caracterActual))|| caracterActual=='_' || caracterActual=='$') {
if(texto.charAt(posActual+1)!='(' && texto.charAt(posActual+1)!='{' &&
Character.isLetter((texto.charAt(posActual+1)))==false &&
Character.isDigit((texto.charAt(posActual+1)))==false && texto.charAt(posActual+1)!='_'
&& texto.charAt(posActual+1)!='$'){
lexema += caracterActual;
siguienteCaracter();
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Variable", lexema);
return true;
}
if(texto.charAt(posActual+1)=='{'){
lexema += caracterActual;
siguienteCaracter();
System.out.println("llave"+posActual);
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Clase", lexema);
return true;
}
if(texto.charAt(posActual+1)=='('){
lexema += caracterActual;
siguienteCaracter();
System.out.println("llave"+posActual);
ListarToken(filaIniToken, columnaInicialToken,
"Identificador de Metodo", lexema);
return true;
}
lexema += caracterActual;
siguienteCaracter();
//lexemaaaaa
}
lexema += caracterActual;
siguienteCaracter();
}
else {
bactracking(backPos, filaIniToken,
columnaInicialToken);
return false;
}
return false;
}
public boolean isComentarioLinea() {
//if (caracterActual == '\n')
int backPos = posActual;
int filaToken = filaActual;
int columnaInicialToken = columnaActual;
String lexema = "";
if (caracterActual != '/') {
return false;
}
lexema += caracterActual;
siguienteCaracter();
if (caracterActual == '/') {
lexema += caracterActual;
siguienteCaracter();
///texto.charAt(posActual+1)
while (Character.isLetterOrDigit(caracterActual) || Character.isSpace(caracterActual) || caracterActual== '*' && caracterActual != '\n' ) {
if(texto.charAt(posActual+1) == '\n'){
lexema += caracterActual;
siguienteCaracter();
lexema += caracterActual;
ListarToken(filaToken, columnaInicialToken,
"Comentario de linea", lexema);
return true;
}
lexema += caracterActual;
siguienteCaracter();
}
}
return false;
}
No hay comentarios:
Publicar un comentario