Analizador Lexico
Analizador Lexico
Analizador Lexico
SERVICIOS
TEORÍA DE LA COMPUTACIÓN
Docente:
● EDITH RIVERO TUPAC DE LOZANO
Estudiantes:
● DIEGO MOISÉS CHUCTAYA RUIZ
● SANTOS ADILSON ESTEBA CRUZ
Laboratorio: C
2021
ANALIZADOR LÉXICO
Nombre del Lenguaje:
Java
Gramática
Gramática básica
Palabras reservadas
Palabra Descripción
clave
abstract Métodos abstractos, modificadores de clases abstractas.
const No usado
significa que el método no se puede anular o que una clase no puede tener
subclases
finally Está diseñado para completar la ejecución del código, principalmente por
la robustez e integridad del programa, y ejecutar el código
independientemente de si se produce una excepción.
goto No usado
if Declaraciones condicionales
private Representa campos privados, métodos, etc., a los que solo se puede
acceder desde dentro de la clase.
protected Indica que solo se puede acceder al campo a través de la clase o sus
subclases
short 16 dígitos
static Indica definido a nivel de clase, compartido por todas las instancias
synchroni Representa un bloque de código al que solo puede acceder un hilo a la vez
zed
● Variables de instancia (campos no estáticos), son las variables que están definidas
dentro de un objeto pero que no tienen un modificador de estáticas (static). Suelen llevar
un modificador de visibilidad (public, private, protected) definiéndose.
● Variables de clase (campos estáticos), son aquellas variables que están precedidas del
modificador static. Esto indica que solo hay una instancia de dicha variable. Es decir,
aunque tengamos N objetos de la clase, la variable estática solo se instancia una vez.
● Variables locales, son variables temporales cuyo ámbito de visibilidad es el método
sobre el que están definidas. No pueden ser accedidas desde otra parte del código. Se
las distingue de las variables de instancia ya que estas no llevan modificadores de
visibilidad delante.
● Parámetros, son las variables recibidas como parámetros de los métodos. Su visibilidad
será el código que contenga dicho método.
package Analizador;
package java.util.*;
while(estado==1 || estado==2){
switch(estado){
case 1:
System.out.print(ch);//imprime letra
if(Character.isLetter(ch)){
estado++;
pointer++;
ch=entrada.charAt(pointer);
}
else{
estado=0;
}
break;
case 2:
System.out.print(ch);//imprime letra
if(Character.isLetter(ch)|| Character.isDigit(ch)){
pointer++;// Avanza en la entrada
try{
ch=entrada.charAt(pointer);
}catch(IndexOutOfBoundsException ex){
estado=3; //estado aceptacion
}
}
else{
estado=3;
}
break;
}
}
if(estado==3){
System.out.print("Cadena Aceptada");
}
else{
System.out.print("Cadena Rechazada");
}
}
}
}
Cadena Aceptada
Cadena Rechazada