Referencias
Una hoja para consultar de un vistazo. Cada apartado lleva a la página que lo cuenta entero.
Palabras reservadas
No pueden ser nombres de variables, funciones, clases ni parámetros:
and | break | case | catch | class | const |
continue | def | default | div | do | elfor |
else | elsif | end | enum | exit | false |
fn | for | foreach | func | if | import |
in | mod | nil | not | off | on |
operator | or | private | ref | repeat | return |
struct | super | switch | then | this | true |
try | type | until | use | var | while |
do, repeat y ref están reservadas, pero en la 0.9.7 no sirven para nada: while y until no llevan do, y ref da un error al compilar.
| Palabras | Para qué | Dónde |
|---|---|---|
var, const, enum | Variables, constantes y enumerados | Variables y constantes |
if, then, elsif, else, switch, case, default | Elegir qué se ejecuta | Estructuras de control |
for, elfor, foreach, in, while, until, break, continue | Bucles | Estructuras de control |
end | Cerrar un bloque | Sintaxis básica |
func, return, fn | Funciones y lambdas | Funciones |
class, def, this, super, private, operator | Clases y objetos | Clases y objetos |
struct | Estructuras de datos | Structs |
try, catch, exit | Errores y salir del programa | Errores y excepciones |
use, import | Módulos y otros ficheros | Programas de varios ficheros |
and, or, not, div, mod | Operadores | Operadores |
true, false, on, off, nil | Valores | Tipos de datos |
type | El tipo de un valor | type |
Operadores
| Operadores | Qué hacen |
|---|---|
+, -, *, / | Suma, resta, multiplicación y división. / da siempre un decimal: 5 / 2 es 2.5. |
div, mod, % | División entera y resto: 5 div 2 es 2, y 5 mod 2 y 5 % 2 son 1. |
++, -- | Suman o restan uno a una variable: x++. |
==, !=, <, <=, >, >= | Comparan dos valores. |
and, or, not, ! | Lógicos. ! es lo mismo que not. |
&, |, ^, ~, <<, >> | Bit a bit. Con dos booleanos, ^ es el o exclusivo: true ^ false es true. |
? : | Condicional: a > b ? a : b. |
=, +=, -=, *=, /=, %= | Asignación. |
En JARU, and y or tienen la misma prioridad, y not se calcula antes que las comparaciones: pon paréntesis cuando los mezcles. El orden de todos está en Prioridad de los operadores, y cada uno, con ejemplos, en Operadores.
Tipos
| Tipo | Se escribe | type() da |
|---|---|---|
| Booleano | true, false, on, off | tBool |
| Sin valor | nil | tNil |
| Entero, de 32 bits con signo | 42, -7, 0x1F | tInteger |
| Decimal, de 64 bits | 3.14, .5, 1e3 | tFloat |
| Cadena | "hola", 'hola' | tString |
| Lista | [1, 2, 3] | tList |
| Mapa | {"x": 1, "y": 2} | tMap |
| Array | {1, 2, 3} | tArray |
| Función y lambda | func, fn | tFunction |
| Clase e instancia | class, Jugador() | tClass, tInstance |
Los detalles, en Tipos de datos. Los métodos de las cadenas están en Cadenas, y los de las listas, los mapas y los arrays, en Listas, mapas y arrays.
Librería estándar
Funciones que no necesitan use:
| Para | Funciones |
|---|---|
| La consola | print, println, readLine, cls, ink, paper |
| El tiempo | pause, clock, time |
| Convertir y saber el tipo | chr, int, float, type |
| Números al azar | randomize, random |
| Cuentas | abs, round, sqrt, vlenght |
| Lo que mide algo | len |
| Colores | rgb |
| El sistema y la memoria | memUse, memFree, platform, vmerror |
| Base64 | encode64, decode64 |
Constantes
El compilador las conoce sin use:
| Constantes | Para qué |
|---|---|
HW_ESP32, HW_ESP32S3, HW_WIN32, HW_WEB, HW_ESP32P4, HW_ESP32S31 | Lo que devuelve platform() |
tBool, tInteger, tFloat, tString, tList, tMap… | Lo que devuelve type() |
ERR_UNKNOWN … ERR_TIME_OUT | Los errores: ver Errores y excepciones |
LOW, HIGH | Los niveles de un pin: ver GPIO |
PI, SQRT2 | π y √2: ver Math |
La lista entera, con sus valores, está en Constantes.
Módulos
Se traen con use, como use Display. Cómo se usan, en Módulos.
| Módulo | Para qué |
|---|---|
| Display | Abrir la pantalla o la ventana, su tamaño y su fondo, y el ritmo del juego |
| Draw | Dibujar puntos, líneas, rectángulos, círculos, texto, imágenes y mapas de tiles |
| Bitmap | Cargar imágenes BMP y trabajar con ellas |
| Sprite | Sprites con animación, colisiones y física |
| GridMap | Rejillas 2D: mapas de tiles, choques con el mapa y búsqueda de caminos |
| Scene | La escena: sus sprites, la cámara, la física y el mapa |
| Sound | Sonidos sintetizados, muestras PCM y música |
| Input | El teclado, los botones y el mando, como acciones del juego |
| GPIO | Los pines de entrada y salida, el PWM y las interrupciones |
| I2C | Sensores y otros aparatos conectados por I2C |
| LED | Tiras y matrices de LEDs de colores WS2812 |
| Power | Dormir la placa para ahorrar energía, y despertarla |
| MQTT | Publicar y recibir mensajes MQTT |
| Http | Peticiones HTTP a APIs y servicios web |
| File | Ficheros y carpetas, en la flash, en la tarjeta SD o en el PC |
| Bytes | Bloques de bytes para datos binarios |
| JSON | Leer y escribir JSON |
| Timer | Llamar a una función pasado un tiempo, una vez o cada cierto tiempo |
| Math | Funciones y constantes matemáticas |
| GC | El recolector de basura, que libera la memoria que ya no se usa |
Recursos
- La web de JARU
- GitHub
- Contacto: info@jarulang.com