Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Andresrodart/BB
Compilador para el lenguaje BB
https://github.com/Andresrodart/BB
Last synced: 2 days ago
JSON representation
Compilador para el lenguaje BB
- Host: GitHub
- URL: https://github.com/Andresrodart/BB
- Owner: Andresrodart
- License: gpl-3.0
- Created: 2020-02-29T04:58:21.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-27T01:01:40.000Z (about 3 years ago)
- Last Synced: 2024-05-28T15:29:15.535Z (about 1 month ago)
- Language: Java
- Size: 4.62 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-nutria - BB
README
# BB
Compilador para el lenguaje BB## ¿Qué es BB?
BB (Burros Blancos) es un lenguaje de programación que al ser compilado genera el mismo algorítmo en lenguaje C++.
El lenguaje esta basado en la sintáxis de Python3 que, a consideración personal, es un formato bastante legible.## ¿Cómo usarlo?
Para usar BB debes tener Java 11 o mayor. Y g++ si deseas compilarlo como un ejecutable. De este repositorio descarga BB.jar.
Puede ver con más claridad su uso e instalación en el siguiente video: https://youtu.be/GJt1QPx0IIo
## Sintaxis
Como en C++, debemos declarar la función principal. Pero, como Python, el bloque de código se establece con ':' después de la declaración de la función y cada sentencia que sigue con un tabulador.
BB es un lenguaje tipado (cada variable que se declara debe se pertenecer a un único tipo de dato). Actualmente los tipos que se soporta son: `entero`, `decimal`, `texto` y `nada`. Los cuales se usan antes de una variable para indicar su tipo o antes de la declaración de un función para indicar el valor de retorno que se espera.
La declaración de función lleva el orden `<>` `<>` `(<<0 o muchos parámetros separados por coma>>)` `:` `<>`
BB cuenta con funciones de base. Como la sentencia `si(<>):<>` `o si(<>):<>` `sino`. Que permite realizar acciones de elección. También cuenta con la opción `imprime(<>)` la cual imprime en la consola los valores pasados como parámetros, separados por coma. Para realizar una lectura de consola utilice la función `recibe`; si sólo va a recibir un parámetro la sintaxis es la siguiente: `<> <> imprime('Un mensaje (opcional)')`. Si son mas de un parámetro la sintaxis es: `(<> <>, <> <>, ...) imprime('Un mensaje (opcional)')`. El tipo de dato es opcional, sólo se usa si la variable aún no ha sido definida anteriormente.### Ejemplo
Crea el documento
#### ejemplo.bb
```
entero a = 2 * (2 + 3 * 8 /2)
decimal b = 2.0
texto andrés = 'andrés, es, raro'
texto cadena = 'hola'nada mi_imprime(texto s, entero a):
imprime(s, 2, andrés, a)entero suma(entero a, entero b):
regresa a + bentero principal():
texto nombre = 'hola'
entero ca = 2
si a > 10 :
a = 10
o si a == 20:
a = 21
sino:
a = 0
mientras a < 10 :
a += 1
lista mi_lista = [1, 2, 3 , 4]
entero sum = suma(2, a)
mi_imprime('mi_funcion', sum)
(nombre, entero edad) = recibe('ingresa tu nombre y tu edad: ')
imprime('tu nombre es: ', nombre, ' y tienes: ', edad, ' años')
regresa ca + 2
```
En el directorio donde se encuentran BB.jar y antlr-4.8-complete.jar (deben estar en el mismo directorio) y ejecuta el comando:
```bash
java -jar BB.jar <>\ejemplo.bb -output
```
La bandera -output genera automáticamente el ejecutable con el nombre a
## Hecho con
El analizador léxico y el análisis sintáctico se realizaron con ANTLR4.