Skip to content

ggomez0/Compilador

Repository files navigation

Estructura del Lenguaje

Principio y Fin

El programa comienza con la palabra reservada EMPEZAR y termina con TERMINAR.

Carácter de Fin de Línea

Cada línea de este lenguaje finaliza con el carácter .

Librerías Externas

Este lenguaje permite incluir librerías externas. Se deben definir al inicio del archivo siguiendo la estructura:

extend("nombreDeLibreria.Extension")

Se pueden incluir varias librerías separadas por ;.

Tipos de Datos Admitidos

Solo se admiten los siguientes tipos de datos:

  • entero (int)
  • texto (String)
  • decimal (float)
  • lógico (bool)

Definir Variables

Para definir variables se utiliza la estructura:

DEF tipo1 nombre1 := valor1

Donde tipo puede ser alguno de los tipos admitidos.

Asignación de Valores

Para asignar valores a una variable se utiliza el símbolo := seguido por una variable o un valor de alguno de los tipos admitidos.

Funciones y Procedimientos

  • Las funciones tienen la forma:
nombre(tipo1 arg1; tipo2 arg2; …; tipon argn) retorno.
  • En el caso de los procedimientos:
nombre(tipo1 arg1; tipo2 arg2; …; tipon argn).
  • El procedimiento que se utiliza para definir los pines es:
DEF PIN(tipo:número)

Donde numero indica el PIN que se va a utilizar y tipo puede ser:

  • PINOU: salida
  • PININ: entrada

Comentarios

  • Los comentarios de línea se inician con /*.
  • Los comentarios de bloque se encierran entre //* y *//.

Estructuras de Control

Este lenguaje admite las siguientes estructuras de control:

  • Condicional IF:
    • IF (condición) {}
    • IF (condición) {} ELSE {}
  • Bucle WHILE:
    • WHILE (condición) {}

Palabras Reservadas y Funciones Predefinidas

Las palabras reservadas deben escribirse en MAYÚSCULAS. Además de las palabras mencionadas anteriormente, otras palabras reservadas son:

  • ADEL(): El robot avanza.
  • ATR(): El robot retrocede.
  • IZQ(): El robot gira en sentido antihorario.
  • DER(): El robot gira en sentido horario.
  • ESP(tiempo): El robot espera un tiempo determinado.
  • FREN(): El robot se detiene.

Ejemplo

Pseudocódigo (lengFuente.txt)

EMPEZAR
extend("nombreDeLibreria.Extension;servo.h").
DEF entero MD1.
DEF entero MD2:=3./*INICIO DE LA SECCION SETUP
DEF PIN(PININ:MD1).
DEF PIN(PINOU:MD2).
/*FIN DE LA SECCION LOOP
ADEL().
ESP(10).
IZQ().
FREN().
TERMINAR

Resultado (Salida.ino)

#include <nombreDeLibreria.Extension>
#include <servo.h>

int MD1;
int MD2 = 3;

void setup() {
    pinMode(MD1, INPUT);
    pinMode(MD2, OUTPUT);
}

void loop() {
    avanzar();
    esperar(10);
    giro_izquierda();
    parar();
}

About

Compilador con analisis Lexico y sintactico

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published