Skip to content
fabidick22 edited this page Nov 13, 2018 · 3 revisions

ANALIZADOR LÉXICO HUNTER

DOCUMENTACIÓN

LENGUAJE HUNTER

El lenguaje HUNTER está hecho de forma básica para aquellos que desean adentrar en el mundo de la programación, por ahora se encuentra en estado BETA lo que limita ciertas funcionalidades básicas al momento.

CARACTERÍSTICAS

El lenguaje HUNTER está elaborado bajo lenguaje C. El compilador de HUNTER toma características de los lenguajes Python y JAVA. El ingreso de datos es similar a la utilización del lenguaje Python en el ingreso de datos por teclado, como también las estructuras como los Arreglos (arrays) y las matrices (arrays de arrays). En las operaciones Lógicas, se denota claramente el uso de estructura similar a la del lenguaje JAVA mediante el uso de Paréntesis, como también la culminación de una línea de código mediante el uso de punto y coma (;).

FUNCIONES

Dentro de las operaciones que avarca serían:

  • Operaciones Aritméticas.
  • Operaciones Lógicas.
  • Operaciones con Arrays.
  • El uso de palabras reservadas serán usadas solo en mayúsculas.
  • La declaración de variables se harán minúsculas.

Dentro de las operaciones que no está disponible al momento son:

  • Operaciones con Objetos.
  • Interfaz gráfica.
  • No se pueden declarar las variables con letras mayúsculas.
  • No está disponible el uso de números decimales.
  • No se usa guión bajo para la declaración de variables.
  • El guión bajo '_' no está disponible en el lenguaje hasta el momento.

Definición de declaraciones:

Palabras reservadas:

  • INICIO: Se usa para dar inicio al programa
  • FIN: Demuestra el final del lenguaje.
  • CADENA: Se usa para la declaración de variables de tipo cadena
  • ENTERO: Se usa para declarar variables de tipo numerico.
  • BOOLEAN: Se usa para la declaración de variables de tipo booleanas.
  • FUNCION: Se usa para declarar funciones dentro de nuestro lenguaje.
  • RETORNO: Devuelve el valor generado dentro de una función.
  • IMPRIMIR: Se usa para dar mensajes en pantallas.
  • SI: Se usa SI para declarar condiciones.
  • SINO: Su función se usa para condiciones en caso la condición no funcione
  • PARA: Su función es crear ciclos repetitivos.
  • RECOGER: Se usa para obtener un valor por usuario.

FORMAS DE DECLARACIÓN

  • INICIO: Esta palabra reservada INICIO solamente se usa al inicio del código, en el cual se muestra el inicio de la programación. Ejemplo:
INICIO;
....
...
  • FIN: Demuestra el final de la programación, representa el fin del programa
......
....
FIN;
  • CADENA: Se usa para la declaración de variables de tipo cadena.
CADENA var1;
CADENA var2="Hola";
  • ENTERO: Se usa para la declaración de variables de tipo numérico.
ENTERO var1;
ENTERO var2=3;
  • BOOLEAN: Se usa para la declaración de tipo booleano,
BOOLEAN var1;
BOOLEAN var2=FALSE;
BOOLEAN var3=TRUE;
  • FUNCION: Se una la palabra FUNCION para declarar funciones dentro del lenguaje
.........
FUNCION sumar(int numero1, int numero2){
	.......
    RETORNO resultado;
}
...
  • SI: Se usa SI para declarar condiciones.
            .......
            SI(var1==var2){
                imprimir("Son iguales");
            }
            ......
  • SINO: Se usa para que cumpla una condición en caso que la función SI no cumpla. Siempre debe ir acompañado de la función "SI" para que se pueda usar el "SINO".
            SI(var1==var2){
                IMPRIMIR("son iguales");
            }
            SINO{
                IMPRIMIR("son diferentes");
            }
  • PARA: Para cumple la función de buqle repetidor. Se debe establecer la variable donde va a alojar el valor de contador, a su vez se establece el valor inicial o punto de inicio, para que dicha variable incremente hasta llegar a ser igual al valor que se establece como Limite,
            ......
            PARA(var1 HASTA 1:5){
            .......
            }
  • RECOGER: Esta palabra reservada se usa para capturar el valor ingresado por teclado para luego ser asignada en alguna variable.
            ....
            var1=RECOGER("ingrese el valor");
            ....

REPRESENTACIÓN GRÁFICA DE LOS AUTÓMATAS

automatas

TABLA DE TOKEN

Captura

TABLA DE TRANSICIONES

tablaTransiciones

EJEMPLO DE CÓDIGO VALIDADO

INICIO;
    ENTERO va1, contador;
    contador=0;
    var1=RECOGER("ingrese el valor");
    ENTERO var2 = 5 ;
    ENTERO result= sumar(var1,var2);
    FUNCION sumar(ENTERO numero1, ENTERO numero2){
        ENTERO resultado=numero1+numero2;
        RETORNO resultado;
    }
    SI(result == 8){
        IMPRIMIR ("suma es ocho");
    }SINO{
        IMPRIMIR ("no es valor 8");
    }
    PARA(contador HASTA 1:5){
                IMPRIMIR (contador);
    }
FIN;

ANALIZADOR SINTACTICO

REGLAS DE DERIVACIÓN

W' -> W
W -> INICIO; E FIN;
E -> T
T -> DECLARACION
DECLARACION -> TIPODATO F ;
TIPODATO -> ENTERO
TIPODATO -> CADENA
TIPODATO -> BOOLEAN
DECLARACION -> TIPODATO F = F ;
DECLARACION -> TIPODATO F = F OPERADOR F ;
DECLARACION -> TIPODATO F = " F " ;
OPERADOR -> +
OPERADOR -> -
OPERADOR -> *
OPERADOR -> /
E -> SI ( id CONDICION id ) { E } ELSE { E }
CONDICION -> ==
CONDICION -> >=
CONDICION -> <=
CONDICION -> !=
E -> ''
E -> ASIGNACION
ASIGNACION -> F = F ;
E -> FUNCION id ( TIPODATO F , TIPODATO F ) { E }
E -> RECOGER
E -> F = RECOGER ( F ) ;
E -> F = RECOGER ( " F " ) ;
T -> RETORNO ( id ) ;
T -> RETORNO F ;
T -> IMPRIMIR ( F ) ;
T -> IMPRIMIR ( " F " ) ;
E -> PARA ( F HASTA F : F ) { E }
E -> LLF
LLF -> TIPODATO F = F ( F FF ) ;
FF -> , F
FF -> ''
F -> id
E -> F

TABLA DE ANALISIS SINTAXICO

TABLA DE PRIMEROS Y SIGUIENTES